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

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

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

有什么想法吗?谢谢。

【问题讨论】:

    标签: javascript android angularjs cordova phonegap-plugins


    【解决方案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,它运行良好,但它仍然只是替换整个包。谢谢。
    最近更新 更多