Я хотел бы отобразить локальные файлы 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