總結了一下之前App開發過程中實現版本更新功能的思路,首先,在App啓動後,用戶登錄的時候將當前的App版本號作爲參數傳到到服務端,
var version = "";
mui.ready(function() {
mui.plusReady(function() {
version = plus.runtime.version;
checkVersion();
})
})
/**
* @param {String} userId 用戶名
* @param {String} password 密碼
*/
function validLogin(userId,password){
var result = true;
if(userId == null || userId.trim() == ''){
mui.toast('用戶名不能爲空');
result = false;
return result;
}
if(password == null || password.trim() == ''){
mui.toast('密碼不能爲空');
result = false;
return result;
}
return result;
}
function checkVersion(){
var params = {
appVersion:version
}
var success = function(msg){
console.info("msg==="+msg);
var obj = JSON.parse(msg);
if(obj.version != ""){
var btnArray = ['取消', '立即更新'];
mui.confirm("最新版本:"+obj.version+"\n當前版本:"+version,"檢測到新版本",btnArray,function(e){
if (e.index == 1) {
updatePage = plus.webview.create('http://192.168.2.248:8090/font/browse/part/download.jsp','download.html');
updatePage.show();
updatePage.hide();
} else {
}
});
}
}
var error = function(){}
baseAjax(API_DOMAIN + CHECK_VERSION_API,params,success,error);
}
服務端定義了最新的版本號,在接收到App發來的版本號之後,將兩者進行對比,如果不相同,則將最新的版本號通過接口返回到App端,進行提示升級即可
private String appVersion;//移動應用版本號
private String version = "9.1.39"; //最新版本號
public String checkVersion(){
String data = "";
LoginData loginData = new LoginData("", "", data);
if(compareVersion(appVersion, version)){
loginData.setVersion(version);
}
value = loginData.toJson();
return "rtn-xml";
}
private boolean compareVersion(String oldVersion,String newVersion){
try {
if(Integer.parseInt(oldVersion.replace(".", ""))<Integer.parseInt(newVersion.replace(".", ""))){
return true;
}else{
return false;
}
} catch (Exception e) {
return false;
}
}