【问题标题】:Cordova: use html, javascript and css from another locationCordova:使用其他位置的 html、javascript 和 css
【发布时间】:2014-04-08 10:13:33
【问题描述】:

是否可以从应用程序的www 文件夹以外的位置使用htmljavascriptcss 文件?

背景

在构建Cordova/Phonegap 应用程序时,有一个宿主应用程序,应用程序代码打包在应用程序目录结构内的文件夹www 中(Android 为.apk,iOS 为.ipa,WP8 为.xap )。

在某些实现中,可以将www 文件夹的内容“替换”为其他文件或指向您的应用代码的其他位置。 Intel XDK 具有live update 功能,您可以在其应用预览工具(通用宿主应用程序)中选择您的应用程序包。 Phonegap 有一个类似的功能叫做hydration

Cordova 宿主应用程序有一种虚拟文件系统指向应用程序包。例如,在 Android 中,www 文件夹中的index.html 文件的地址为file:///android_asset/www/index.html。这些文件可以从应用程序中寻址,但不能从外部启动的应用程序中寻址(它们不能指向位于应用程序包中的文件)。文件应首先复制到另一个位置。因此,不可能真正替换应用程序包中的文件。

我想要做的是,例如具有所需 Javascript 的通用 index.html 页面,以从其他位置加载文件。最初在应用程序启动时,应用程序代码将被复制到此位置,对于更新,应用程序可以检查互联网上新应用程序包的可用性,下载并将其复制到该位置。

它还将提供一个快速的开发周期。例如Android我可以将www文件夹的所有文件和文件夹复制到带有adb push www /mnt/sdcard/myappwww的设备。

是否允许替换htmljavascriptcss?根据this stackoverflow question上的回答应该没问题。

【问题讨论】:

    标签: cordova


    【解决方案1】:

    我们通过构建 Cordova Bootstrapper (https://github.com/MacawNL/CordovaBootstrapper) 解决了这个问题。 Cordova Bootstrapper 允许您为您的应用程序代码提供一个 zip 包。这个包被解压到磁盘上的某个位置并执行 index.html 文件。该代码在网络上检查更新版本的包,如果可用,它会下载新版本并提取它,以便您可以更新您的应用程序。内容包也可以使用相同的功能。

    【讨论】:

      【解决方案2】:

      因此无法真正替换应用包内的文件

      100% 正确。应用打包后,其文件是只读的

      我想做的是例如一个通用的 index.html 页面,其中包含所需的 Javascript 来从另一个位置加载文件

      我建议使用支持模板、状态和 MVC 的框架。这些基于“单页”应用程序的原则,并为每个视图/状态动态加载必要的内容。我推荐的一些很好的框架示例是 AngularJS、Ionic Framework 和 EmberJS。 RequireJS(用于动态加载文件)或 BackBoneJS(用于 MVC 和路由)是一些很好的库示例(不是完整的应用程序框架,但提供了一些此类功能)。

      【讨论】:

      • 在这种情况下,我使用的是 Typescript + Angular + Ionic。但是,从应用程序包之外的位置加载所有其他信息时,我的初始 index.html 文件会是什么样子?
      • 刚刚在github.com/torrmal/cordova-standalone-hydration 偶然发现了一个 github 存储库,它可以为我指明正确的方向...
      猜你喜欢
      • 1970-01-01
      • 2015-08-21
      • 2021-07-13
      • 2022-01-20
      • 1970-01-01
      • 1970-01-01
      • 2013-04-21
      • 2014-04-09
      • 1970-01-01
      相关资源
      最近更新 更多