Introduce appPackageUrl

This commit is contained in:
Feodor Fitsner 2025-04-29 11:53:56 -07:00
parent c8a8e5bd98
commit 5a4dd973d1
3 changed files with 12 additions and 1 deletions

View File

@ -26,6 +26,7 @@
<script> <script>
var webRenderer = "{{ cookiecutter.web_renderer }}"; var webRenderer = "{{ cookiecutter.web_renderer }}";
var useColorEmoji = "{{ cookiecutter.use_color_emoji }}".toLowerCase() == "true"; var useColorEmoji = "{{ cookiecutter.use_color_emoji }}".toLowerCase() == "true";
var appPackageUrl = "assets/app/app.zip";
var pythonModuleName = "{{ cookiecutter.python_module_name }}"; var pythonModuleName = "{{ cookiecutter.python_module_name }}";
var noCdn = "{{ cookiecutter.no_cdn }}".toLowerCase() == "true"; var noCdn = "{{ cookiecutter.no_cdn }}".toLowerCase() == "true";
</script> </script>

View File

@ -1,4 +1,5 @@
self.pyodideUrl = null; self.pyodideUrl = null;
self.appPackageUrl = null;
self.micropipIncludePre = false; self.micropipIncludePre = false;
self.pythonModuleName = null; self.pythonModuleName = null;
self.documentUrl = null; self.documentUrl = null;
@ -10,6 +11,7 @@ self.initPyodide = async function () {
importScripts(self.pyodideUrl); importScripts(self.pyodideUrl);
self.pyodide = await loadPyodide(); self.pyodide = await loadPyodide();
self.pyodide.registerJsModule("flet_js", flet_js); 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("python_module_name", self.pythonModuleName);
self.pyodide.globals.set("micropip_include_pre", self.micropipIncludePre); self.pyodide.globals.set("micropip_include_pre", self.micropipIncludePre);
flet_js.documentUrl = documentUrl; flet_js.documentUrl = documentUrl;
@ -20,6 +22,12 @@ self.initPyodide = async function () {
py_args = flet_js.args.to_py() if flet_js.args else None 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: if "python_module_name" in py_args:
python_module_name = py_args["python_module_name"] python_module_name = py_args["python_module_name"]
@ -37,7 +45,7 @@ self.initPyodide = async function () {
if "script" not in py_args: if "script" not in py_args:
print("Downloading app archive") print("Downloading app archive")
response = await pyfetch("assets/app/app.zip") response = await pyfetch(app_package_url)
await response.unpack_archive() await response.unpack_archive()
else: else:
print("Saving script to a file") print("Saving script to a file")
@ -79,6 +87,7 @@ self.onmessage = async (event) => {
self.pyodideUrl = event.data.pyodideUrl; self.pyodideUrl = event.data.pyodideUrl;
self.flet_js.args = event.data.args; self.flet_js.args = event.data.args;
self.documentUrl = event.data.documentUrl; self.documentUrl = event.data.documentUrl;
self.appPackageUrl = event.data.appPackageUrl;
self.micropipIncludePre = event.data.micropipIncludePre; self.micropipIncludePre = event.data.micropipIncludePre;
self.pythonModuleName = event.data.pythonModuleName; self.pythonModuleName = event.data.pythonModuleName;
await self.initPyodide(); await self.initPyodide();

View File

@ -33,6 +33,7 @@ globalThis.jsConnect = async function(appId, args, dartOnMessage) {
pyodideUrl: globalThis.pyodideUrl ?? defaultPyodideUrl, pyodideUrl: globalThis.pyodideUrl ?? defaultPyodideUrl,
args: args, args: args,
documentUrl: _documentUrl, documentUrl: _documentUrl,
appPackageUrl: globalThis.appPackageUrl,
micropipIncludePre: globalThis.micropipIncludePre, micropipIncludePre: globalThis.micropipIncludePre,
pythonModuleName: globalThis.pythonModuleName pythonModuleName: globalThis.pythonModuleName
}); });