文档章节

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

crazymus
 crazymus
发布于 2015/06/12 12:09
字数 404
阅读 5376
收藏 9

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

© 著作权归作者所有

crazymus

crazymus

粉丝 71
博文 80
码字总数 111033
作品 8
武汉
后端工程师
私信 提问
PhoneGap的由来

2008年8月,PhoneGap在旧金山举办的iPhoneDevCamp上初次崭露头角。起名为PhoneGap是创始人的想法:“为跨越Web技术和iPhone之间的鸿沟牵线搭桥。”(Bridging the gap between the web and ...

生气的散人
2012/11/21
683
2
Cordova 和 Ionic 的区别

Cordova Apache Cordova是一个开源的移动开发框架。允许你用标准的web技术-HTML5,CSS3和JavaScript做跨平台开发。 应用在每个平台的具体执行被封装了起来,并依靠符合标准的API绑定去访问每个...

华山猛男
2018/11/07
177
0
PhoneGap或者Cordova框架下实现Html5中JS调用Android原生代码

按照我一惯得套路,我会先说一点废话。PhoneGap和Cordova什么关系?为什么有的地方叫Cordova而有的地方叫PhoneGap ?PhoneGap是一款HTML5平台,通过它,开发商可以使用HTML、CSS及JavaScript来...

Java编程思想
2014/07/21
8.7K
0
phoneGap3.0安装步骤(以windows下的android环境为例):

phoneGap3.0安装步骤(以windows下的android环境为例): 环境: WIN系统,JDK,Android,Eclipse,Ant,Git,PhoneGap3.x (Cordova) 1. 安装JRE,设置JAVAHOME,比如JAVAHOME=C:programJavaj...

kisshua
2014/03/05
106
0
Phonegap(Cordova)3.4 + Android 环境搭建

PhoneGap是一个用基于HTML,CSS和JavaScript的,创建移动跨平台移动应用程序的快速开发平台。它使开发者能够利用iPhone,Android,WP7等多种智能手机的核心功能——包括地理定位,加速器,联...

千山万水
2015/06/11
155
0

没有更多内容

加载失败,请刷新页面

加载更多

《JAVA核心知识》学习笔记 (19. 数据库)

19.1.1. 存储引擎 19.1.1.1. 概念 数据库存储引擎是数据库底层软件组织,数据库管理系统(DBMS)使用数据引擎进行创建、查询、 更新和删除数据。不同的存储引擎提供不同的存储机制、索引技巧...

Shingfi
16分钟前
3
0
三分钟手操自己的yum源

本文章原创首发公众号:编程三分钟 上次就想手操yum源了,考虑到有的朋友没接触过,直接写成了yum源的科普,活活憋了我一个星期,现在我们快快开始。 什么情况下我们需要搭建一个仓库呢? 记...

编程三分钟
19分钟前
4
0
一起来学Java8(二)——Lambda表达式

Lambda简介 什么是Lambda表达式,简单的说是一种匿名函数表达方式。因此Lambda表达式本质是个函数,只不过没有函数名称。 Lambda表达式具有以下特点: 匿名,它没有函数名称 本质是个函数,除...

猿敲月下码
21分钟前
4
0
排序算法之希尔排序

1、介绍。 希尔排序(Shell's Sort)是插入排序的一种又称“缩小增量排序”(Diminishing Increment Sort),是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因D...

daxiongdi
30分钟前
3
0
log4j2入门hello world

1.什么是log4j2 (1)log4j log4j是apache的一个开源项目,表示log for java.是一个日志工具,可以将日志信息输出到文件,控制台等其他地方 ,还可以定义日志的输出格式,另外还有日志级别的区分,可...

Blueeeeeee
32分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部