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