是否可以将Svelte/Sapper应用程序转换为Cordova



我们有用Svelte/Sapper编写的PWA应用程序,我们喜欢在移动平台上转换此应用程序。由于一些商业原因,我们需要在Android和iOS商店中明确应用程序。

  • 在安卓系统上,情况很容易。我们将使用谷歌TWA,一切都会很好
  • 在苹果iOS上,我觉得这很难。没有像iOS版的谷歌TWA这样的东西。此外,苹果商店的大量需求也将是一个相当痛苦的问题

小提示:我们不需要移动平台上的任何原生API。纯JavaScript浏览器API对我们来说已经足够了。

所以我找到了Apache Cordova项目,我认为它是解决我们问题的最佳方案,并找到了Sveltesyonip/svelte-cordova-template的模板。但这还不够。模板正在解决Svelte,但不是Sapper。

最好的情况是,我下载一些Cordova/Svelte/Sapper模板,复制现有的源代码,修复途中的一些问题,将应用程序导出到xCode项目,构建它,它将在iOS上运行,不会出现任何重大问题(但我当然希望一些代码更改,但不会完全重写应用程序(。

你可能对Svelte/Sapper有一些经验吗;科尔多瓦移民?

Edit1:我认为可以使用Sapperexport功能并将构建的文件传递给Cordova。当用户手动更改URL地址时,它会出现一些问题,比如无法运行路由(但对于这个特定的用例——移动应用程序——这不是问题,因为用户将无法编辑URL(。服务器端渲染、预加载和预取也是不可能的。

Edit2:经过一些挖掘,我认为不可能将Sapper应用程序转换为Cordova。Sapper中的代码分割存在许多问题。最大的问题发生在CORS策略和Sapper应用程序设计用于服务器和域,而不是文件系统。也许可以在Cordova中使用一些隐藏的本地主机服务器来提供文件,但这会有问题,而且非常糟糕。

第3版:我们将现有的Svelte/Sapper代码库与Flutter和Google TWA一起使用。Flutter应用程序包含引用前端应用程序公共URL地址的网络视图。

您需要cordova应用程序中的node来运行node(sapper(应用程序。

所以,

  1. 在cordova应用程序中包含节点:https://www.npmjs.com/package/nodejs-mobile-cordova

  2. 通过运行nodejs.启动

  3. 使用运行的脚本启动您的sapper应用程序npm启动

  4. 打开你的网络视图到sapper索引路线。

我还没有尝试过这个btw,这只是一种预感:(

相关内容

最新更新