App升級的原理很簡單,獲取服務端最新版的版本信息,與自身的版本信息進行比較,若是自身版本低,就能夠提示用戶下載新版本。 php
對於Android應用,版本信息主要存儲在AndroidManifest.xml文件中: android
<manifest android:hardwareAccelerated="true" android:versionCode="101" android:versionName="1.0.1" android:windowSoftInputMode="adjustPan" package="net.jiusem.tjlib" xmlns:android="http://schemas.android.com/apk/res/android">
android:versionCode表示版本號,是一個整數,android:versionName表示版本名稱,使用點號隔開的字符串。 git
檢測App是否須要更新的關鍵在於獲取到versionCode,並與服務端的versionCode進行比較,若是小於服務端,就說明App有新版本了,須要更新。 github
有一款插件能夠獲取到App的versionCode,安裝方法以下: json
cordova plugin add https://github.com/whiteoctober/cordova-plugin-app-version.git
獲取versionCode: 瀏覽器
cordova.getAppVersion.getVersionNumber(function (version) { alert(version); });
完整的客戶端和服務端代碼示例: 性能優化
//檢查更新方法 function checkUpdate(){ //檢查更新地址 var url = 'http://app.test.com/TjLib/check_update.php'; cordova.getAppVersion.getVersionCode(function(versionCode) { $.post(url,{},function(data){ var obj = JSON.parse(data); if(versionCode < obj.versionCode){ //檢測到更新時,提示用戶是否升級 var r = confirm(obj.msg); if(r){ //調用瀏覽器打開下載連接,須要安裝inappbrowser插件 window.open(obj.apk, '_system', 'location=yes'); } } }); }); } //App啓動後調用一次 setTimeout(function(){ checkUpdate(); },5000); 服務端代碼參考(PHP) <?php //檢查更新調用 $data = array( 'versionCode'=>102,//版本號 'versionName'=>'1.0.1',//版本名稱 'msg'=>"有新版本可供更新.\n 1.界面美化 \n 2.性能優化", //更新提示 'apk'=>'http://app.test.com/TjLib/TjLib1.0.1.apk' //app下載地址 ); echo json_encode($data); ?>
歡迎加QQ羣交流:454566813 <說明來自開源中國> app