diff --git a/{{cookiecutter.out_dir}}/web/index.html b/{{cookiecutter.out_dir}}/web/index.html index 91e58a1..568fc8b 100644 --- a/{{cookiecutter.out_dir}}/web/index.html +++ b/{{cookiecutter.out_dir}}/web/index.html @@ -26,6 +26,7 @@ diff --git a/{{cookiecutter.out_dir}}/web/python-worker.js b/{{cookiecutter.out_dir}}/web/python-worker.js index 85cdb5c..e2320f6 100644 --- a/{{cookiecutter.out_dir}}/web/python-worker.js +++ b/{{cookiecutter.out_dir}}/web/python-worker.js @@ -1,4 +1,5 @@ self.pyodideUrl = null; +self.appPackageUrl = null; self.micropipIncludePre = false; self.pythonModuleName = null; self.documentUrl = null; @@ -10,6 +11,7 @@ self.initPyodide = async function () { importScripts(self.pyodideUrl); self.pyodide = await loadPyodide(); self.pyodide.registerJsModule("flet_js", flet_js); + self.pyodide.globals.set("app_package_url", self.appPackageUrl); self.pyodide.globals.set("python_module_name", self.pythonModuleName); self.pyodide.globals.set("micropip_include_pre", self.micropipIncludePre); flet_js.documentUrl = documentUrl; @@ -19,6 +21,12 @@ self.initPyodide = async function () { from pyodide.http import pyfetch py_args = flet_js.args.to_py() if flet_js.args else None + + if "app_package_url" in py_args: + app_package_url = py_args["app_package_url"] + + if app_package_url is None: + app_package_url = "assets/app/app.zip" if "python_module_name" in py_args: python_module_name = py_args["python_module_name"] @@ -37,7 +45,7 @@ self.initPyodide = async function () { if "script" not in py_args: print("Downloading app archive") - response = await pyfetch("assets/app/app.zip") + response = await pyfetch(app_package_url) await response.unpack_archive() else: print("Saving script to a file") @@ -79,6 +87,7 @@ self.onmessage = async (event) => { self.pyodideUrl = event.data.pyodideUrl; self.flet_js.args = event.data.args; self.documentUrl = event.data.documentUrl; + self.appPackageUrl = event.data.appPackageUrl; self.micropipIncludePre = event.data.micropipIncludePre; self.pythonModuleName = event.data.pythonModuleName; await self.initPyodide(); diff --git a/{{cookiecutter.out_dir}}/web/python.js b/{{cookiecutter.out_dir}}/web/python.js index 5aa0e8d..d63e873 100644 --- a/{{cookiecutter.out_dir}}/web/python.js +++ b/{{cookiecutter.out_dir}}/web/python.js @@ -33,6 +33,7 @@ globalThis.jsConnect = async function(appId, args, dartOnMessage) { pyodideUrl: globalThis.pyodideUrl ?? defaultPyodideUrl, args: args, documentUrl: _documentUrl, + appPackageUrl: globalThis.appPackageUrl, micropipIncludePre: globalThis.micropipIncludePre, pythonModuleName: globalThis.pythonModuleName });