function download(){
// 下载wgt文件
var wgtUrl = plus.webview.currentWebview().path;
var download = plus.downloader.createDownload( wgtUrl, {filename:"_downloads/update/"}, function(d,status){
if ( status == 200 ) {
installWgt(d.filename); // 安装wgt包
} else {
plus.nativeUI.alert("下载wgt失败!",function(){
plus.runtime.restart();
});
}
})
download.start();
var loading = setInterval(function(){
var percent = download.downloadedSize/download.totalSize*100
$('#loading').css('width',percent+'%');
if (percent == 100) {
clearInterval(loading);
}
},100);
}
// 更新应用资源
function installWgt(path){
setTimeout(function(){
plus.runtime.install(path,{},function(){
plus.runtime.restart();
},function(e){
plus.nativeUI.alert("安装wgt文件失败["+e.code+"]:"+e.message,function(){
plus.runtime.restart();
});
});
},200);
}
12 个回复
chanyhot
同问
你猜猜我是谁 (作者)
附:1.1wgtu包中update.xml文件
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<wgtu appid="H5A9A1F63">
<basis version="1.0" />
</wgtu>
附:2.1wgtu包中update.xml文件
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<wgtu appid="H5A9A1F63">
<basis version="2.0" />
</wgtu>
你猜猜我是谁 (作者)
求大神指点
你猜猜我是谁 (作者)
差量更新有没有大神?
DCloud_App_Array
这种情况应该限定只能1.0版本应用下载使用1.1的wgtu更新包,限定只能2.0版本应用下载使用2.1的wgtu更新包。
至于更新的文件取决于wgtu文件中定义的更新内容(如果wgtu中只有b/c两个文件,是不可能会更新a文件的呀)。
你猜猜我是谁 (作者)
根据我们测试结果,确实是会一起更新,H5+ sdk是2018年12月26日发布的那个版本
2019-05-07 15:40
你猜猜我是谁 (作者)
日志我发出来了,这是生产事故,非常着急,麻烦帮忙看看,谢谢
2019-05-07 15:45
你猜猜我是谁 (作者)
2019-05-07 15:29:58.014582 [276:10073] [Runtime][INFO:] Archiver file fullPath /var/mobile/Containers/Data/Application/3382979A-816F-44A3-B281-12E363727ED6/Library/Pandora/apps/H5A9A1F64/data/download.plist
2019-05-07 15:29:58.014886 [276:10073] [Runtime][INFO:] Unarchiver task url http://test..com/staticpage/1.1.wgtu
2019-05-07 15:29:58.014910 [276:10073] [Runtime][INFO:] Unarchiver task filename /var/mobile/Containers/Data/Application/1F1CE532-954F-4D3E-A7CE-2743490D86C2/Library/Caches/Pandora/downloads/update/1.1.wgtu
2019-05-07 15:29:58.014931 [276:10073] [Runtime][INFO:] Unarchiver task finishFileSize 169233
2019-05-07 15:29:58.014949 [276:10073] [Runtime][INFO:] Unarchiver task state 4
2019-05-07 15:29:58.014966 [276:10073] [Runtime][INFO:] Unarchiver task url http://test..com/staticpage/2.1.wgtu
2019-05-07 15:29:58.014982 [276:10073] [Runtime][INFO:] Unarchiver task filename /var/mobile/Containers/Data/Application/3382979A-816F-44A3-B281-12E363727ED6/Library/Caches/Pandora/downloads/update/2.1.wgtu
2019-05-07 15:29:58.014999 [276:10073] [Runtime][INFO:] Unarchiver task finishFileSize 6690
2019-05-07 15:29:58.015015 [276:10073] [Runtime][INFO:] Unarchiver task state 4
2019-05-07 15:29:58.015053 [276:10073] [Runtime][INFO:] Archiver file fullPath /var/mobile/Containers/Data/Application/3382979A-816F-44A3-B281-12E363727ED6/Library/Pandora/apps/H5A9A1F64/data/upload.plist
2019-05-07 15:29:58.015205 ****[276:10073] [Runtime][DEBUG:] ##CoreApp##...重启应用结束
你猜猜我是谁 (作者)
这是第二次热更新的日志
2019-05-07 15:45
DCloud_App_Array
回复 你猜猜我是谁: 日志中说明更新了两次,两次更新就是两次合并的结果,逻辑上应该是正常的吧
2019-05-07 20:45
你猜猜我是谁 (作者)
回复 DCloud_App_Array: 我把下载和更新的代码贴出来了,请帮忙看看,谢谢
2019-05-08 08:58
你猜猜我是谁 (作者)
回复 DCloud_App_Array: 我这个是两次热更新中间有发布版本更新,就是第一次是发布更新,第二次是热更新,第三次是发布更新,第四次是热更新,两次热更新中间隔了个版本发布(Appstore上架),时间跨度几个月
2019-05-08 09:21
你猜猜我是谁 (作者)
function download(){
// 下载wgt文件
var wgtUrl = plus.webview.currentWebview().path;
var download = plus.downloader.createDownload( wgtUrl, {filename:"_downloads/update/"}, function(d,status){
if ( status == 200 ) {
installWgt(d.filename); // 安装wgt包
} else {
plus.nativeUI.alert("下载wgt失败!",function(){
plus.runtime.restart();
});
}
})
download.start();
var loading = setInterval(function(){
var percent = download.downloadedSize/download.totalSize*100
$('#loading').css('width',percent+'%');
if (percent == 100) {
clearInterval(loading);
}
},100);
}
你猜猜我是谁 (作者)
这是下载和更新的代码
2019-05-08 08:57
你猜猜我是谁 (作者)
2019-05-08 11:11:02.181397+0800 [471:33357] [Runtime][INFO:] dowloader response statusCode:200
2019-05-08 11:11:02.181435+0800 [471:33357] [Runtime][INFO:] dowloader response file fullpath:/var/mobile/Containers/Data/Application/AE855627-FC5E-4852-903C-C71B3A8DC431/Library/Caches/Pandora/downloads/update/2.1.wgtu
2019-05-08 11:11:03.176334+0800 [471:33357] Cannot make directory /var/mobile/Containers/Data/Application/AE855627-FC5E-4852-903C-C71B3A8DC431/Library/Pandora/apps/H5A9A1F64/www_Install: File exists
2019-05-08 11:11:03.177592+0800 [471:33357] Cannot make directory /var/mobile/Containers/Data/Application/AE855627-FC5E-4852-903C-C71B3A8DC431/Library/Pandora/apps/H5A9A1F64/www_Install/html: File exists
2019-05-08 11:11:03.253002+0800 [471:33357] [LOG] : 2.1.wgtu
2019-05-08 11:11:03.253658+0800 [471:33357] [LOG] : success
2019-05-08 11:11:03.354941+0800 [471:33357] [Runtime][DEBUG:] ##CoreApp##...需要重启应用
2019-05-08 11:11:03.381758+0800 [471:33357] [Runtime][DEBUG:] ##CoreApp##...应用end成功
2019-05-08 11:11:03.381811+0800 [471:33357] [Runtime][DEBUG:] ##CoreApp##...开始重启应用
2019-05-08 11:11:03.381863+0800 [471:33357] [Runtime][DEBUG:] ##CoreApp##...app start load..
2019-05-08 11:11:03.383500+0800 [471:33357] -canOpenURL: failed for URL: "hbuilder://" - error: "未能完成操作。(“OSStatus”错误 -10814。)"
2019-05-08 11:11:03.383571+0800 [471:33357] [Runtime][DEBUG:] ##CoreApp##...createAppRuntime..
2019-05-08 11:11:03.387902+0800 [471:33357] [Runtime][DEBUG:] splash screen 需要自动关闭
2019-05-08 11:11:03.388378+0800 [471:33357] [Runtime][DEBUG:] ##CoreApp##...createAppWindow..
2019-05-08 11:11:03.388552+0800 [471:33357] [Runtime][DEBUG:] ##CoreApp##...创建首页..
2019-05-08 11:11:03.391880+0800 [471:33357] [Runtime][DEBUG:] show NWindow--[H5A9A1F64]
2019-05-08 11:11:03.392471+0800 [471:33357] [Runtime][INFO:] Archiver file fullPath /var/mobile/Containers/Data/Application/AE855627-FC5E-4852-903C-C71B3A8DC431/Library/Pandora/apps/H5A9A1F64/data/download.plist
2019-05-08 11:11:03.392629+0800 [471:33357] [Runtime][INFO:] Archiver file fullPath /var/mobile/Containers/Data/Application/AE855627-FC5E-4852-903C-C71B3A8DC431/Library/Pandora/apps/H5A9A1F64/data/upload.plist
2019-05-08 11:11:03.392730+0800 [471:33357] [Runtime][DEBUG:] ##CoreApp##...重启应用结束
2019-05-08 11:11:03.440602+0800 [471:33357] [Runtime][DEBUG:] main page loader end
你猜猜我是谁 (作者)
这个日志是代码加了下载成功清除下载任务的功能,但是问题依然没有解决,代码如下 plus.downloader.clear(4);
2019-05-08 11:20
你猜猜我是谁 (作者)
2019-05-08 11:11:03.176334+0800 [471:33357] Cannot make directory /var/mobile/Containers/Data/Application/AE855627-FC5E-4852-903C-C71B3A8DC431/Library/Pandora/apps/H5A9A1F64/www_Install: File exists
2019-05-08 11:11:03.177592+0800 [471:33357] Cannot make directory /var/mobile/Containers/Data/Application/AE855627-FC5E-4852-903C-C71B3A8DC431/Library/Pandora/apps/H5A9A1F64/www_Install/html: File exists
这俩报错很可疑,怀疑是解压安装目录会遗留文件导致安装上次热更新的文件
2019-05-08 11:21
你猜猜我是谁 (作者)
function download(){
// 下载wgt文件
var wgtUrl = plus.webview.currentWebview().path;
download = plus.downloader.createDownload( wgtUrl, {filename: downloadPath}, function(d,status){
if ( status == 200 ) {
plus.downloader.clear(4);
installWgt(d.filename); // 安装wgt包
} else {
plus.nativeUI.alert("下载wgt失败!",function(){
plus.runtime.restart();
});
}
});
download.start();
var loading = setInterval(function(){
var percent = download.downloadedSize/download.totalSize*100;
$('#loading').css('width',percent+'%');
if (percent == 100) {
clearInterval(loading);
}
},100);
}
你猜猜我是谁 (作者)
新增下载成功清除下载任务功能代码
2019-05-08 11:22
DCloud_App_Array
你描述的问题是因为2.0版本会先更新1.1的wgtu,也会更新2.1版本的wgtu,是这样吧?
这个逻辑是升级服务器来控制的呀,2.0版本不要下发更新1.1的wgtu,不就没有你说的这个问题吧。
你猜猜我是谁 (作者)
是这个问题,但是我们并没有下发,我们打印过下载路径和安装路径,只有2.1版本的,我们还删除过服务器上1.1.wgtu包试过,都不行,只有把安装包整个卸载热更新才会只更新2.1版本,是不是更新时候解压文件没有清除?
2019-05-08 11:27
DCloud_App_Array
回复 你猜猜我是谁: 按你你说的情况,那就是跟wgtu更新无关,而是ipa覆盖安装资源没有更新,把两个ipa发出来?请明确清楚问题的核心点,才能有效的解决问题。
2019-05-08 13:14
你猜猜我是谁 (作者)
回复 DCloud_App_Array: 1.1的wgtu我们修改了a.html和b.html,2.0的ipa在1.1的wgtu基础上又修改了a.html和b.html,热更新2.1的wgtu只有c.html和d.html,更新完之后,a.html和b.html不是预期版本的,也就是是1.1版本的不是2.0版本的,也就是说热更新后版本回退了,c.html和d.html是预期的2.1版本的
2019-05-08 13:29
DCloud_IOS_XTY
回复 你猜猜我是谁: 请提供下1.1 2.0 2.1 的wgtu文件
2019-05-09 11:49
DCloud_IOS_XTY
appstore升级之后将以IPA中携带的应用为准,wgt升级的内容失效,请确认下IPA中携带的应用是否正确
j***@126.com
同问,app版本升级安装后,资源文件始终会是之前旧版本热更新留下的最后资源文件,必须要手动清app缓存数据后才是正常的