Как отобразить локальные HTML -файлы в WebView от flet в устройстве Android?Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Как отобразить локальные HTML -файлы в WebView от flet в устройстве Android?

Сообщение Anonymous »

У меня есть проблемы с элементом WebView в Android.
Я хотел бы отобразить локальные файлы HTML с JavaScript и CSS. http: // localhost: 8000/file.html .

Код: Выделить всё

import flet as ft
import http.server
import socketserver
import threading
import sys
import ssl

SERVER = "localhost"
PORT = 8000
HTML_DIRECTORY = "assets/html"

class HookHandler(http.server.SimpleHTTPRequestHandler):
def __init__(self, *args, **kwargs):
super().__init__(*args, directory=HTML_DIRECTORY, **kwargs)

class ThreadedTCPServer(socketserver.ThreadingMixIn, socketserver.TCPServer):
pass

def start_server():
with ThreadedTCPServer((SERVER, PORT), HookHandler) as httpd:
httpd.serve_forever()

def main(page: ft.Page):
wv = ft.WebView(
f"http://{SERVER}:{PORT}/file.html",
expand=True
)
page.add(wv)

server_thread = threading.Thread(target=start_server)
server_thread.daemon = True
server_thread.start()
app = ft.app(main)
< /code>
Но когда я получаю доступ к файлам, существует ошибка безопасности err_cleartext_not_permitted. Я не нахожу способ отключить эту безопасность в компоненте WebView.import flet as ft
import http.server
import socketserver
import threading
import sys
import ssl

SERVER = "localhost"
PORT = 8000
HTML_DIRECTORY = "assets/html"

class HookHandler(http.server.SimpleHTTPRequestHandler):
def __init__(self, *args, **kwargs):
super().__init__(*args, directory=HTML_DIRECTORY, **kwargs)

class ThreadedTCPServer(socketserver.ThreadingMixIn, socketserver.TCPServer):
pass

def get_ssl_context(certfile, keyfile):
context = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER)
context.load_cert_chain(certfile, keyfile)
return context

def start_server():
with ThreadedTCPServer((SERVER, PORT), HookHandler) as httpd:
context = get_ssl_context("cert.pem", "key.pem")
httpd.socket = context.wrap_socket(httpd.socket, server_side=True)
print("Serving at port", PORT)
httpd.serve_forever()

def main(page: ft.Page):
wv = ft.WebView(
f"https://{SERVER}:{PORT}/file.html",
expand=True,
)
page.add(url_input, submit_btn, wv)

server_thread = threading.Thread(target=start_server)
server_thread.daemon = True
server_thread.start()
app = ft.app(main)

< /code>
Когда я открываю свое приложение, оно пусто. WebView? Способ добавить пользовательские элементы/свойства в этом файле автоматически в команде Flet Build Apk 
?

Подробнее здесь: https://stackoverflow.com/questions/785 ... oid-device
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»