You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

265 lines
7.1 KiB

5 years ago
var appCheckAppVersion; //版本号变量[String]
var appCheckAppUrl = app.confBaseUrl + "version/findNewVersionAll"; //检查App更新的请求地址
var appCheckWgtUrl = app.confBaseUrl + "wgtVersion/findNewWgtVersion"; //检查补丁更新的请求地址
var appCheckSystemType; //系统类型
var appCheckKey = app.getLanguageLocalStorage();
//语言
var appCheckInfo = {
zh_CN: {
text: "提示",
btn01: "前往下载",
btn02: "稍后下载",
btn03: "安卓下载",
btn04: "苹果下载",
alert01: "发现有新版本可以升级!",
alert02: "未知设备,请手动下载!",
alert03: "获取app下载地址失败,请使用ios设备打开!"
},
zh_HK: {
text: "提示",
btn01: "前往下載",
btn02: "稍後下載",
btn03: "安卓下載",
btn04: "蘋果下載",
alert01: "發現有新版本可以升級!",
alert02: "未知設備,請手動下載!",
alert03: "獲取app下載地址失敗,請使用ios設備打開!"
},
en_US: {
text: "Prompt",
btn01: "Go to download ",
btn02: "Download later ",
btn03: "Android downloads ",
btn04: "Apple downloads ",
alert01: "Found a new version to upgrade!",
alert02: "Unknown device, please download manually!",
alert03: "Failed to get app download address, please open it with ios device!"
}
}
/**
* @method 获取App应用的版本号
*/
function plusReady() {
plus.runtime.getProperty(plus.runtime.appid, function(inf) {
appCheckAppVersion = inf.version;
appCheckSystemType = getCurrentSystem(); //系统类型
checkFun(); // 更新方法
});
}
/**
* 版本更新
*/
function checkFun() {
mui.ajax(appCheckAppUrl, {
type: "GET", //HTTP请求类型
dataType: 'json', //服务器返回json格式数据
timeout: 10000, //超时时间设置为10秒;
success: function(data) {
if("200" == data.code) {
checkJudge(data.data);
} else {
mui.alert(data.msg);
}
},
error: function(xhr, type, errorThrown) {
// app.toast("网络异常,请检查网络状态");
}
})
}
/**
* 版本更新判断,若版本一致,则检查是否有补丁更新,若版本不一致,则进行大版本更新
*
* @param {Object} data 版本更新信息
*/
function checkJudge(data) {
if(appCheckSystemType) { // 系统类型 "安卓"或者"苹果"
var appData = data[appCheckSystemType]; //获取当前系统的数据信息
if(appData == null) {
return;
}
//1、判断大版本更新
if(appCheckAppVersion.substr(0, 3) * 1 < appData.version.substr(0, 3) * 1) {
app.setVersionLocalStorage(appData.version);
// checkAppFun(appData); // 大版本更新方法
return;
} else { //2、判断补丁更新`
checkWgtFun(); // 补丁更新方法
return;
}
} else { //系统类型识别不了
otherFun(data); // 手动下载
}
}
/**
* 大版本更新
*
* @param {Object} data 版本更新信息
*/
function checkAppFun(data) {
var appCompel = data.compel; // 是否强制更新
var btn; //弹框按钮
if(appCompel == 1) { // 强制更新
btn = [appCheckInfo[appCheckKey].btn01];
} else {
btn = [appCheckInfo[appCheckKey].btn01, appCheckInfo[appCheckKey].btn02];
}
mui.confirm(appCheckInfo[appCheckKey].alert01, appCheckInfo[appCheckKey].text, btn, function(e) {
console.log(e.index)
if(e.index == 0) {
var appUrl = data.appUrl; //获取当前安装包的下载地址
downApp(appUrl); //执行App下载安装
} else {
if(appCompel == 1) {
plus.runtime.quit();
}
}
});
}
/**
*
* 补丁更新
* @param {Object} data 版本更新信息
*/
function checkWgtFun() {
mui.ajax(appCheckWgtUrl, {
type: "GET", //HTTP请求类型
dataType: 'json', //服务器返回json格式数据
timeout: 10000, //超时时间设置为10秒;
success: function(data) {
console.log(JSON.stringify(data));
if("200" == data.code) {
if(data.data) {
if(appCheckAppVersion.substr(0, 3) * 1 > data.data.wgtVersion.substr(0, 3) * 1) {
return;
}
if(appCheckAppVersion.replace(/\./g, "") * 1 >= data.data.wgtVersion.replace(/\./g, "") * 1) {
return;
}
if(appCheckAppVersion != data.data.wgtVersion && data.data.wgtVersion.split(".").pop() * 1 > appCheckAppVersion.substr(-1).split(".").pop() * 1) {
app.setVersionLocalStorage(data.data.wgtVersion);
mui.confirm(appCheckInfo[appCheckKey].alert01, appCheckInfo[appCheckKey].text, [appCheckInfo[appCheckKey].btn01, appCheckInfo[appCheckKey].btn02], function(e) {
if(e.index == 0) {
app.openWin("mine/html/my/my_about_us.html", "mine/html/my/my_about_us.html", null, {
data: data.data
});
}
});
}
} else {
return;
}
} else {
mui.alert(data.msg);
}
},
error: function(xhr, type, errorThrown) {
// console.log("网络异常,请检查网络状态");
}
})
}
/**
* App下载(网页端)
*/
function webpageDownAppFun() {
mui.ajax(appCheckAppUrl, {
type: "GET", //HTTP请求类型
dataType: 'json', //服务器返回json格式数据
timeout: 10000, //超时时间设置为10秒;
success: function(data) {
if("200" == data.code) {
webpageDownAppJudge(data.data);
} else {
mui.alert(data.msg);
}
},
error: function(xhr, type, errorThrown) {
// app.toast("网络异常,请检查网络状态");
}
})
}
/**
* 版本更新判断,若版本一致,则检查是否有补丁更新,若版本不一致,则进行大版本更新
*
* @param {Object} data 版本更新信息
*/
function webpageDownAppJudge(data) {
console.log(data);
console.log(appCheckSystemType);
if(appCheckSystemType) { // 系统类型 "安卓"或者"苹果"
var appData = data[appCheckSystemType]; //获取当前系统的数据信息
window.location.href = appData.appUrl; //直接下载安装包
return;
} else { //系统类型识别不了
otherFun(data); // 手动下载
}
}
/**
* 系统类型识别不了手动下载的方法
*
* @param {Object} data 所有系统版本更新信息
*/
function otherFun(data) {
mui.confirm(appCheckInfo[appCheckKey].alert02, appCheckInfo[appCheckKey].text, [appCheckInfo[appCheckKey].btn03, appCheckInfo[appCheckKey].btn04], function(e) {
if(e.index == 0) {
var appUrl = data["android"].appUrl; //获取安卓安装包的下载地址
console.log(data);
window.location.href = appUrl; //执行App下载安装
} else if(e.index == 1) {
mui.toast(appCheckInfo[appCheckKey].alert03);
} else {
return false;
}
});
}
/**
* 大版本更新重新下载新版本App
* @param {Object} appUrl 新版本app下载地址
*/
function downApp(appUrl) {
plus.runtime.openURL(appUrl);
}
/**
* 获取当前系统类型
*/
function getCurrentSystem() {
//是否为IOS
var isIos = mui.os.ios || mui.os.ipad || mui.os.iphone;
//是否为安卓
var isAndroid = mui.os.android;
if(isIos) {
return "ios";
} else if(isAndroid) {
return "android";
} else {
return null; // 识别不了
}
}
(function(appCheck) {
/**
* 应用App下载
*/
appCheck.appDown = function() {
appCheckSystemType = getCurrentSystem(); //系统类型
webpageDownAppFun();
};
/**
* 应用App更新
*/
appCheck.appSave = function() {
mui.plusReady(function() {
plusReady(); //获取当前应用的版本号赋值给appCheckAppVersion
})
};
}(window.appCheck = {}))