2323646018
2323646018
  • 发布:2015-06-17 23:33
  • 更新:2015-06-19 20:19
  • 阅读:1854

App在线资源升级BUG,请解答———续贴,官方请进!欢迎大家测试,看看是不是BUG

分类:HBuilder

发现问题:新安装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 负责人:无 分享
已邀请:
stock2

stock2

楼主也是asp的呀,终于找到伙伴了,呵呵。你是增量更新吗?打包升级,浏览器下载的,我的没问题

  • 2323646018 (作者)

    不是差量升级,你用我的这个代码测试了,没有出现我说的这种情况么?

    2015-06-18 10:23

  • stock2

    我自己的项目升级 没有问题. 如果不是增量升级, 可以用官网的代码 .见下面,我贴给你.

    2015-06-18 17:35

stock2

stock2

下面是官网的,你修改为自己的即可. 通过参数判断是否有新的,有就下载即可啊.
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);

stock2

stock2

这个是我自己的.基于你是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("当前无网络哦!");}}
}

stock2

stock2

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

stock2

stock2

哦,好的,下次我试试你这种,你的更加适合手机端,省流量,我的是完整的覆盖安装包

该问题目前已经被锁定, 无法添加新回复