Phonegap:灵活的iOS应用程序更新(无应用商店)
Phonegap: flexible iOS app update (No AppStore)
我有一个Phonegap iOS应用程序。我的应用程序是私人分发的,因此现在和将来都不会使用应用程序商店。该应用程序与自制中间件进行通信。为了管理应用程序更新,我考虑做一些类似的事情:
->在应用程序启动时,检查是否有更新的版本。
->如果是,则调用一个自制的Javascript模块,该模块将利用HTML5文件I/O API,以便根据中间件的输出更新/创建/删除文件。
-
在你看来;这个解决方案可靠吗?
-
有其他选择吗?(应用商店完全不在画面中)
使用PhoneGap/Cordova应用程序,您通常会从本地www文件夹加载文件。在运行时更新文件的问题是,您无法写入www位置,只能写入应用程序的"文档"文件夹。
我假设您使用的是Enterprise分发版,因为您是在没有应用商店的情况下分发的。如果你对用户必须去检查更新感到高兴,你可以考虑使用TestFlight之类的东西来分发更新。
您也可以取消TestFlight,自己托管ipa文件,检查更新,然后要求用户下载并安装更新。
编辑
无论有没有插件,都无法写入www文件夹。这是由于iOS的限制,而不是PhoneGap/Cordova的限制。
这些链接讨论通过空中传送分发企业应用程序http://developer.apple.com/library/ios/#featuredarticles/FA_Wireless_Enterprise_App_Distribution/Introduction/Introduction.html
通过OTA 进行IOS企业分发
企业内部应用程序分发
我考虑使用www文件夹作为引导程序,在文档目录中的www文件夹中下载实际的应用程序,并从那里加载index.html页面(以及应用程序的其余部分)
我想知道这是否是的一个选项
当然,ObjectiveC UIWebView会指向下载的版本,如果它存在
我知道这是一个老问题,但公认的答案不再正确。以下是一个完整的项目,展示了如何做到这一点:https://github.com/ben-ng/phonegap-air
简而言之,诀窍是不要写入应用程序捆绑包,而是写入Documents目录。
还有一个名为Trigger.io的替代服务。它很像phonegap,但它的关键功能之一是可以让你在设备上"重新加载"应用程序,这基本上就是你想要的,AFAICT。
因此cordava似乎只能加载应用程序捆绑包中的文件。您不能简单地更改webroot参数来获取文档文件夹。
您可以使用FileReader API从持久存储中进行读取。这意味着你必须在应用程序包中创建某种引导程序html/javascript,并创建从持久存储加载内容的代码(你可以随时更新)
这是一个很好的开始寻找的地方:Cordava File API docs
- Web应用程序,将成员状态更新为其他成员
- React应用程序:道具在下一个事件后更新
- 如何使 NgJsTree 应用模型更新
- 应用程序更新其网站
- 让NodeJS应用程序使用NPM进行自我更新
- 通过javascript清除并更新html5应用程序缓存
- 如何在不按ctrl+F5的情况下更新我的Web应用程序(chrome、mozilla、IE8+)更改
- Phonegap应用程序数据库版本在更新后保留
- Heroku Ruby on Rails应用程序don't更新公共/资产目录中的未消化资产
- 发布后的应用程序在几分钟后停止更新更新面板
- php使用ajax生成html表,以应用用户操作,如删除、更新和编辑
- 如何更新日期?当我运行应用程序时,它被卡住了
- 为什么在Firefox更新之后JQuery不能在我的MVC 4应用程序中工作
- Phonegap:灵活的iOS应用程序更新(无应用商店)
- 通过应用程序缓存仅更新一个文件
- CSS在第一次点击jQuery.post提交时没有应用,然后在随后的点击中没有更新
- Chrome应用程序:如何更新在Chrome应用程序主窗口中创建的辅助窗口元素的内容
- 在待办事项列表应用程序中设置更新
- 更新应用程序布局图标
- 在应用更新时使用本地存储进行应用内购买