各位好,我看了 dcloud论坛上的App资源在线升级的文章,感觉用前端的技术开发出来的App在这方面着实强大便捷,也尝试使用了整包升级与应用资源升级的方法来对App进行升级
我们用的其中一种方法是整包升级的方法:通过提醒用户并且跳转到Google Play上去更新的办法(因为做的是面向外国市场的App),这方面问题倒是不大
目前遇到的主要问题:我们都知道Android Studio对Hbuilder项目进行离线打包的时候要将HTML5资源放到asserts目录下,但是这个目录打包成apk后,是无法写入的..如果我们用资源的在线升级方法2移动APP资源升级包 就会升级失败..
移动APP资源包升级其实就是将HTML5资源打包成wgt格式,APP下载并且解压这个wgt文件,覆盖掉原来的HTML5资源实现升级,官方的离线打包的教程是将HTML放到asserts目录下的,打包后无法访问到,我想这就是问题的所在
不知道Hbuilder是不是有什么解决方案可以在apk安装后依然可以向asserts文件夹写入文件..还是说在线升级不支持asserts文件夹的资源更新?
/**
* 下载wgt更新包
* @param {Object} wgtUrl
*/
function downWgt(wgtUrl) {
console.log("下载Wgt文件....");
plus.downloader.createDownload(wgtUrl, {
filename: "_doc/update/"
}, function(d, status) {
if(status == 200) {
console.log("下载wgt成功:" + d.filename);
installWgt(d.filename); // 安装wgt包
} else {
console.log("下载wgt失败!");
}
}).start();
}
/**
* 安装wgt更新包
* @param {Object} path
*/
function installWgt(path) {
plus.runtime.install(path, {}, function() {
console.log("安装wgt文件成功!");
plus.runtime.restart();
}, function(e) {
console.log("安装wgt文件失败[" + e.code + "]:" + e.message);
});
}
吴俊川 (作者)
那离线打包的官方Demo,静态HTML资源都是放在asserts文件夹下的,该如何解决
2016-10-08 18:59
吴俊川 (作者)
比如在离线打包的时候可不可以将静态资源放在别的目录下,亦或者是放在data目录下,然后从data中读取,从而实现在线更新
2016-10-08 20:41
Android_磊子
放在什么位置不影响wgt、wgtu更新的。
2016-10-09 09:22
吴俊川 (作者)
放什么位置都不影响wgt,wgtu更新然后又不支持对asserts文件夹的资源更新,怎么理解这句话
2016-10-09 14:23
Android_磊子
你升级过程碰到什么问题吗?
2016-10-09 17:38
吴俊川 (作者)
回复 Android_磊子:打开APP触发在线资源更新,下载wgt包,
代码运行到console.log("安装wgt文件成功!");重启APP是没有效果的
查了下论坛,也有人遇到类似的情况
详细参考http://ask.dcloud.net.cn/question/21116
备注:真机调试是没有问题的,离线打包后使用在线资源更新就会出现这个问题
2016-10-09 20:22
七号座先生
升级重启之后,资源文件并没有释放到SD卡/android/data/[apk包名]/apps的目录下面呀。机型是Android8.0,小米mix2
2018-04-12 16:14