Код: Выделить всё
import os
import sys
from flasher import app
import httplib
import webview
import threading
def start_prod_server():
runserver(debug=False, reloader=False)
def start_gui():
webview.create_window("MyAppName", "http://localhost:5000", height=1000)
def runserver(debug=True, reloader=False):
port = int(os.environ.get('PORT', 5000))
url = "http://localhost:{}".format(port)
print("ready!")
app.run(host='::', port=port, debug=debug, use_reloader=reloader)
if __name__ == '__main__':
t = threading.Thread(target=start_prod_server)
t.daemon = True
t.start()
# This never works
threading.Timer(1.5, start_gui).start()
sys.exit()
< /code>
Это не удается почти систематически, окно отображается пустым, а бэкэнд не отвечает ни на что (включая запросы из отдельного браузера настольных компьютеров). < /p>
Я случайно обнаружил, что если я запускаю два потока WebView, это всегда работает: < /p>
if __name__ == '__main__':
t = threading.Thread(target=start_prod_server)
t.daemon = True
t.start()
# This works every time
threading.Timer(1.5, start_gui).start()
threading.Timer(1.5, start_gui).start()
sys.exit()
Я также открыт для предложений альтернатив для части веб-просмотра, но Я хочу сохранить часть python/flask, поскольку приложение и так работает нормально.
Подробнее здесь: https://stackoverflow.com/questions/433 ... o-webviews