Cordova/Phonegap应用实现检测升级(Android版)

App升级的原理很简单,获取服务端最新版的版本信息,与自身的版本信息进行比较,如果自身版本低,就可以提示用户下载新版本。

对于Android应用,版本信息主要存储在AndroidManifest.xml文件中:

<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表示版本名称,使用点号隔开的字符串。

检测App是否需要更新的关键在于获取到versionCode,并与服务端的versionCode进行比较,如果小于服务端,就说明App有新版本了,需要更新。

有一款插件可以获取到App的versionCode,安装方法如下:

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 <说明来自开源中国>

你可能感兴趣的:(Cordova,PhoneGap)