如何在 android 中远程更新我的 cordova/phonegap 移动应用程序?

Posted

技术标签:

【中文标题】如何在 android 中远程更新我的 cordova/phonegap 移动应用程序?【英文标题】:How to update my cordova/phonegap mobile application remotely in android? 【发布时间】:2017-02-08 17:24:36 【问题描述】:

我用 cordova + angularjs + sqlite 编写了移动应用程序。我需要将它直接从我的服务器分发到不通过 google play 的设备。

现在我需要更新 android 设备上 www 目录中存储的 javascript 文件。我尝试将文件从应用程序目录 (/data/data/my.application.directory/) 传输到某个公共设备目录或服务器,反之亦然 - 没问题。但问题是www 目录是file:///android_asset/ 的一部分,它是只读的,所以我无法在其中存储任何数据。

有什么想法吗?谢谢。

【问题讨论】:

【参考方案1】:

这是我用于更新我的应用的方式,我没有使用 Google Play 或其他商店:

我正在使用这个 cordova 插件:https://github.com/whiteoctober/cordova-plugin-app-version 来检查我的实际应用版本

cordova.getAppVersion.getVersionNumber().then(function (version) 

    if(version)
        // Check the server reference version
);

之后,我将应用版本号发送到服务器 服务器检查发送的版本和参考版本之间的差异

如果设备应用版本较旧,我会将新版本返回给我的应用客户端

【讨论】:

我认为没有必要使用插件来检查版本。问题是关于替换应用中的资产文件。【参考方案2】:

您几乎没有提供有关您的应用程序、代码以及您正在尝试做什么的信息,但无论哪种方式,让我尝试为您提供帮助。

如果您要做的是修改已发布/下载的 Android 客户端 www 目录中的文件,那就算了,您需要直接访问设备,并且此代码在您发布时已捆绑。

如果您正在寻找热码推送解决方案,there might be a way of doing so installing additional cordova plugins

当您在商店中发布您的应用程序时,您会将所有 Web 内容打包到其中:html 文件、JavaScript 代码、图像等。有两种方法可以更新它:

在商店中发布新版本的应用程序。但这需要时间, 尤其是 App Store。 牺牲离线功能并在线加载所有页面。但是作为 互联网连接中断 - 应用程序将无法运行。

解决方案:install cordova-hot-code-push

【讨论】:

我尝试了你提到的插件cordova-hot-code-push,它运行良好,但它仍然只是替换整个包。谢谢。

以上是关于如何在 android 中远程更新我的 cordova/phonegap 移动应用程序?的主要内容,如果未能解决你的问题,请参考以下文章

如何在Android中找到崩溃Cordova应用程序的内容?

如何添加 Android 意图以在 Cordova/Ionic 项目中打开谷歌地图?

在 android 服务的单独线程中运行位置更新

Android - 应用更新时的 Firebase 远程配置缓存

在android中将SQLite数据库与远程mysql数据同步

添加新插件后,cordova_plugins.js 未更新