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
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 = {}))
|