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

Javascript 如何在android中远程更新我的cordova/phonegap移动应用程序?,javascript,android,angularjs,cordova,phonegap-plugins,Javascript,Android,Angularjs,Cordova,Phonegap Plugins,我已经用cordova+angularjs+sqlite编写了这个移动应用程序。我需要将它直接从我的服务器分发到设备,而不是通过google play 现在我需要更新android设备上www目录中存储的javascript文件。我尝试将文件从应用程序目录(/data/data/my.application.directory/)传输到一些公共设备目录或服务器,反之亦然-没有问题。但问题是www目录是file:///android_asset/这是只读的,因此我无法在其中存储任何数据 有什么想法

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

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


有什么想法吗?谢谢。

您提供的关于您的应用程序、代码以及您正在尝试执行的操作的信息很少,但让我尝试以任何方式帮助您

如果您想在android客户端中修改www目录中已经发布/下载的文件,请忘记它,您将需要直接访问该设备,并且该代码将在您发布时打包

如果您正在寻找热代码推送解决方案

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

  • 在应用商店上发布应用程序的新版本。但这需要时间, 尤其是应用商店
  • 牺牲脱机功能并联机加载所有页面。但作为 一旦互联网连接中断,应用程序将无法工作

解决方案:

您提供的关于您的应用程序、您的代码以及您正在尝试执行的操作的信息很少,但让我尝试以任何方式帮助您

如果您想在android客户端中修改www目录中已经发布/下载的文件,请忘记它,您将需要直接访问该设备,并且该代码将在您发布时打包

如果您正在寻找热代码推送解决方案

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

  • 在应用商店上发布应用程序的新版本。但这需要时间, 尤其是应用商店
  • 牺牲脱机功能并联机加载所有页面。但作为 一旦互联网连接中断,应用程序将无法工作

解决方案:

这是我用来更新应用程序的方式,而不是使用Google Play或其他商店:

我正在使用这个cordova插件:检查我的实际应用程序版本

cordova.getAppVersion.getVersionNumber().then(function (version) 
{
    if(version)
        // Check the server reference version
});
之后,我将应用程序版本号发送到服务器 服务器检查发送的版本与参考版本之间的差异


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

这是我更新应用程序的方式,我不会使用Google Play或其他商店:

我正在使用这个cordova插件:检查我的实际应用程序版本

cordova.getAppVersion.getVersionNumber().then(function (version) 
{
    if(version)
        // Check the server reference version
});
之后,我将应用程序版本号发送到服务器 服务器检查发送的版本与参考版本之间的差异


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

我认为没有必要使用插件检查版本。问题是关于替换应用程序中的资产文件。我认为并没有必要使用插件来检查版本。问题是关于更换应用程序中的资产文件。我尝试了您提到的插件
cordova hot code push
,它工作得很好,但仍然只是更换了整个软件包。谢谢。我尝试了你提到的插件
cordova hot code push
,它工作得很好,但仍然只是更换了整个软件包。谢谢