/**
* 自动更新
*/
var AutoUpdate ={
currentVersion:null,//手机端当前版本号
IOSUrl:"xxx",
//自动下载的URL地址
updateURL:"xxx",
// 获取本地应用资源版本号
GetCurrentAppVersion: function () {
var wgtVer;
plus.runtime.getProperty(plus.runtime.appid, function(inf) {
wgtVer = inf.version;
AutoUpdate.currentVersion=wgtVer;
});
return wgtVer;
},
//检查更新
CheckUpdate: function(callback) {
var parameter=加工参数方法 自行加工
$.ajax({
async: true,
type: 'POST',
url: "xxxx",
crossDomain: true,
cache: false,
dataType: 'text',
data: parameter.DataContent,
contentType: "text/xml; charset=utf-8",
success: function (jsonData) {
var resultTextTags = $.parseXML(jsonData).getElementsByTagName("AndroidAppVersion");
if (resultTextTags.length > 0) {
var resultText = resultTextTags[0].textContent;
var result = $.parseJSON(resultText);
if(result.IsSuccess) {
callback(result.Data);
} else {
mui.toast(result.Message,{ duration:'long', type:'div' });
}
}
},
error: function (xmlHttpRequest, status, error) {
mui.alert("请求服务错误。"+error+"状态:"+status);
}
});
},
//检查更新方法
GetUpdate: function() {
var type = plus.networkinfo.getCurrentType();
if(type != "0" && type != "1" && mui.os.android) {
AutoUpdate.CheckUpdate(function(result){
if(AutoUpdate.currentVersion!=null && AutoUpdate.currentVersion<result.verCode){
mui.alert("更新内容"+result.details,"发现新版本",function(e){
AutoUpdate.DownLoadInstallApk();
});
}
if(AutoUpdate.currentVersion>=result.verCode){
mui.toast("当前"+AutoUpdate.currentVersion+"已经是最新版本",{ duration:'long', type:'div' });
}
})
}else if(type != "0" && type != "1" && mui.os.ios){
jQuery({
type:"get",
dataType:'json',
url:"",//获取当前上架APPStore版本信息
data:{
id:xxxxx //APP唯一标识ID
},
contentType:'application/x-www-form-urlencoded;charset=UTF-8',
success:function(data){
console.log(data);
mui.each(data, function(i,norms) {
mui.each(norms, function(key,value) {
mui.each(value, function(j, normItem) {
if(j=="version"){
if(normItem>ver){
alert("发现新版本:V"+normItem);
plus.runtime.openURL(AutoUpdate.IOSUrl);
}
}
});
});
});
},
error: function (xmlHttpRequest, status, error) {
mui.alert("接口请求服务错误。"+error+"状态:"+status);
}
})
}else{
mui.toast("离线模式不能进行更新操作");
}
},
wgtWaiting : null,
//下载安装更新包
DownLoadInstallApk:function(){
AutoUpdate.wgtWaiting=plus.nativeUI.showWaiting("开始下载,请稍等...", {
back: "none"
}); //打开遮罩
var options = {method:"GET"};
var dtask = plus.downloader.createDownload(AutoUpdate.updateURL,options,function (d, status ) {
AutoUpdate.wgtWaiting.close();
if (status == 200 ) { // 下载成功
mui.toast("下载成功",{ duration:'long', type:'div' });
var path = d.filename;
plus.runtime.install(path); // 安装下载的apk文件
console.log(d.filename);
} else {//下载失败
alert( "Download failed: " + status );
}
})
dtask.addEventListener("statechanged", function(task,status){
switch(task.state) {
case 1: // 开始
break;
case 2: //已连接到服务器
AutoUpdate.wgtWaiting.setTitle("服务器连成功");
break;
case 3: // 已接收到数据
var current = parseInt((task.downloadedSize/task.totalSize) * 100);
AutoUpdate.wgtWaiting.setTitle("当前正在下载资源包 " + current + "%,请勿进行其它操作。");
break;
case 4: // 下载完成
AutoUpdate.wgtWaiting.setTitle("下载完成");
plus.nativeUI.closeWaiting();//关闭遮罩
break;
}
});
dtask.start();
}
}