发现问题:新安装APP后,进行第一次APP在线资源更新,成功,退出重新启动,回到旧版,再一次(也就是第二次)更新,之后一切正常,即使退出重启也不会回到旧版了。即使在进行第三次,第四次,第五次等的更新,在下次启动都可以生效。
测试资源:
旧版本:1.0版;自定义版本1.0版(即自己定义的一个变量,用来判断是否更新成功)
新版本:1.0版(测试中是不是1.0版都无所谓,即使是1.2,1.3都无影响);自定义版本:1.1版;
服务器端判断版本代码(asp代码,复制下来保存为check.asp即可):
<%
a1=request.Form("a1")
a2=request.Form("a2")
if a2="KFGJO54dsfoojjhhjslk5255878kk" and a1<>"1.1" then
response.Write "http://www.le523.com/apk/H5180629C.wgt"
end if
%>
测试步骤:
第一步:下载旧版本,启动后提示(这里是第一次启动):‘自定义1版本(注:实质是1.0,可能系统自动省去了.0)’,点击确认后提示需要更新数据,更新完成后若成功则提示:‘更新成功!’,否则报错。
第二步:退出后,再次启动软件(这里是第二次启动),提示:‘自定义1版本’(注:这里就出现问题了,提示‘自定义1版本’说明上次成功的更新在下一次的启动中没有生效),点击确认后提示需要更新数据,更新完成后若成功则提示:‘更新成功!’,否则报错。
第三步:退出后,再次启动软件(这里是第三次启动),提示:”自定义1.1版“(提示这个说明第二次的更新在下一次启动后生效了),
第四步:在第二次更新后,后面的不管你在进行多少次更新,都可以在下一次启动生效!大家可以更改里面的那个变量,试试看。
附件:旧版本();升级资源包H5180629C.zip(注:把后缀.zip改为.wgt即可,因为不能直接上传,所以只有先改成.zip)
- 发布:2015-06-17 23:33
- 更新:2015-06-19 20:19
- 阅读:1854
下面是官网的,你修改为自己的即可. 通过参数判断是否有新的,有就下载即可啊.
var server="http://www.dcloud.io/check/update";//获取升级描述文件服务器地址
function update(){
mui.getJSON(server,{"appid":plus.runtime.appid,"version":plus.runtime.version,"imei":plus.device.imei},function (data) {
if(data.status){
plus.ui.confirm( data.note, function(i){
if ( 0==i ) {
plus.runtime.openURL( data.url );
}
}, data.title, ["立即更新","取 消"] );
}
});
}
mui.plusReady(update);
这个是我自己的.基于你是asp我就给你.
function update(x){
if (plus.networkinfo.getCurrentType()>1){//1 无网络, 3 是wifi 4是2g3g
mui.get('http://XXXXXXXX.update.asp',{"io":plus.os.name,"appid":plus.runtime.appid,"version":plus.runtime.version,"imei":plus.device.imei},
function (data) {
if(data.substr(0,4)=="err:"){alert("错误:"+data.substr(4));return false;}
if (data.length>0){
var jn=data.split(",");
plus.ui.confirm( jn[1], function(i){
if ( 0==i ) {
//console.log("http://192.168.0.55/work/file/update/"+jn[0]);
plus.runtime.openURL(urlc +jn[0]);
}
}, data.title, ["立即更新","取 消"] );
} else{if (x>0) {mui.toast("当前已经是最新版本,无需更新!");}}
},'text');
}else{if (x>0) {mui.toast("当前无网络哦!");}}
}
x 是参数, 默认是0 ,自动检测 不提示.是否最新版本.
x=1为,在线升级 是否最新, 是,就提示,否则就下载
-
2323646018 (作者)
看了半天好像你这是直接下载的是软件的安装包啊!并不是资源升级包啊!我要做的是直接下载资源升级包(注:不是资源差量包)后,直接解压进行更新的。而不是重新下载新版本的安装包重新安装覆盖旧版本。
2015-06-18 23:18
-
2323646018 (作者)
给你看下我的资源升级包代码:
// 更新资源
var wgtVer=1.0;//这是自定义版本号,由这个判断是否是旧版本
function sehngjicaozuo(){
xhr=XHR();
data="a1="+wgtVer+"&a2=KFGJO54dsfoojjhhjslk5255878kk";
xhr.open("POST","http://www.le523.com/apk/check.asp", true);
xhr.setRequestHeader("cache-control","no-cache");
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.send(data);
xhr.onreadystatechange=function(){
switch(xhr.readyState){
case 4:
if(xhr.status==200){
var newVer=xhr.responseText;
if(newVer){//newVer为空,则为最新版本,否则返回下载更新地址
var w=plus.nativeUI.showWaiting("小驿需要从服务器上获取一些数据,请稍等...");
plus.downloader.createDownload( newVer, {}, function(d,status){
if ( status == 200 ) {
plus.runtime.install(d.filename,{force: true},function(){
w.close();
plus.nativeUI.toast("新数据已替换旧数据,下次启动生效!")
},function(e){
w.close();
plus.nativeUI.toast("替换失败,原因:"+e.message);
})
} else {
plus.nativeUI.toast("获取数据不成功!不影响本次使用")
}
}).start();
}}}}}
// 更新资源结束
2015-06-18 23:20
2323646018 (作者)
不是差量升级,你用我的这个代码测试了,没有出现我说的这种情况么?
2015-06-18 10:23
stock2
我自己的项目升级 没有问题. 如果不是增量升级, 可以用官网的代码 .见下面,我贴给你.
2015-06-18 17:35