文档章节

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

crazymus
 crazymus
发布于 2015/06/12 12:09
字数 404
阅读 4899
收藏 9
点赞 1
评论 0

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

粉丝 67
博文 70
码字总数 106718
作品 8
程序员
PhoneGap或者Cordova框架下实现Html5中JS调用Android原生代码

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

Java编程思想
2014/07/21
0
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
0
0
Phonegap(Cordova)3.4 + Android 环境搭建

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

千山万水
2015/06/11
0
0
PhoneGap或者Cordova框架下实现Html5中JS调用Android原生代码

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

请叫我高级研发工程师
2013/09/06
0
3
phonegap安装 环境搭建与配置详解( 完整版 提供下载地址)

phonegap 安装 环境搭建 完整版 刚刚接触 phonegap 因为配环境遇到各种各样问题.花了一下午时间才完成,所以写一个篇文章希望能给大家节约点时间. 本文主讲windows系统下的phonegap的环境搭建...

james_laughing
2014/12/17
0
0
phonegap安装 环境搭建与配置详解( 完整版 提供下载地址)

phonegap 安装 环境搭建 完整版 刚刚接触 phonegap 因为配环境遇到各种各样问题.花了一下午时间才完成,所以写一个篇文章希望能给大家节约点时间. 本文主讲windows系统下的phonegap的环境搭建...

james_laughing
2014/12/17
0
0
一、PhoneGap-Android开发环境搭建

一. 安装 在安装PhoneGap开发环境之前,需要按顺序安装一下工具:1 java SDK java sdk,不安装的话不能正常安装Android SDK。 安装成功检测:启动DOS窗口start-->run-->cmd,在DOS窗口中键入:...

雪之丞
2013/06/20
0
0
Ionic系列——使用ng-cordova插件

1、cordova介绍 Cordova提供了一组设备相关的API,通过这组API,移动应用能够以JavaScript访问原生的设备功能,如摄像头、麦克风等。 Cordova支持如下7种移动操作系统:iOS, Android,ubuntu...

龙马行空
2015/07/28
0
0
phonegap开发环境搭建摘要

phonegap发展的很快,没有node.js之前还是比较麻烦的,自从有了node.js,初始环境的搭建简单了很多。 phonegap官网的install说明太简单了,很多前期工作没有说明,到处屎坑,导致很多想尝试的...

qingfeng哥
2014/05/15
0
0
如何在Cordova Android 7.0.0 以下版本集成最新插件 极光插件为例

前提 Cordova Android 7.0.0开始改变了项目安卓平台的架构。新建一个空项目分别添加Android 6.4.0 和 Android 7.0.0平台: 生成的安卓平台结构分别为: 可以看到Cordova从7.0.0项目结构开始和...

JoshLiPan
07/17
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

iOS安全应该做哪些事情

1. 尽量使用HTTPS协议。 2. 密码提交的时候,密码使用SHA256加密后传输,MD5等经过哈希碰撞已经可以推算出原文。 3. 密码提交的时候,可以加盐。 4. 密码保存在本地的时候,尽量使用钥匙串保...

HOrange
13分钟前
0
0
react native 注意事项

1. 环境参考官网 android studio 必装 java jdk安装 1.8版本(环境建议自己一步一步配置,切记不要 apt ) 2.有改变编译内容发现 会白屏,然后APP消失,请卸载原来的测试 appinfo (连续两次...

304158
19分钟前
0
0
FOMO游戏代码解析

源代码在此处

怎当她临去时秋波那一转
24分钟前
1
0
EOS智能合约与DApp开发入门

EOS的是Block.One主导研发的一个区块链底层公链系统,它专门为支撑商业去中心化 应用(Decentralized Application)而设计,其代码开源。 比特币被称为区块链1.0,因为它开辟了数字加密货币的...

笔阁
36分钟前
1
0
编译cjson到dll

https://blog.csdn.net/mengzhisuoliu/article/details/52203724 编译完成后 是纯lua实现的json decode 的10倍以上...

梦想游戏人
46分钟前
0
0
JS基础- Date 对象

Date 对象 Date 对象用于处理日期和时间。 创建 Date 对象的语法: var myDate=new Date() 注释:Date 对象会自动把当前日期和时间保存为其初始值。 Date 对象属性 属性 描述 constructor 返...

ZHAO_JH
48分钟前
0
0
Python数据分析numpy(1)

Python开源的科学计算基础库 1.表示N维数组对象ndarray 2.线性代数、傅里叶变换、随机数生成 3.广播函数,整合c++、c 一.数据的维度 1.数据 2.数据维度 3.一维数据 (1)特点 (2)Python中的...

十年磨一剑3344
51分钟前
1
0
csv导入Hive脚本

from pyspark.sql import HiveContexthivec = HiveContext(sc) # 创建一个hivecontext对象用于写执行SQL,sc为sparkcontext# 拼接一个字段类型字符串str_s = 'label String,'...

gulf
53分钟前
0
0
TensorFlow 隐含层 拟合 异或运算

a⊕b = (¬a ∧ b) ∨ (a ∧¬b) 数据 X = [[0, 0], [0, 1], [1, 0], [1, 1]]Y = [[0], [1], [1], [0]] 单层网络只能拟合线性问题,由于异或是非线性问题,需要使用多层网络 输入和输出 [[...

阿豪boy
今天
0
0
SVN 教程

http://www.runoob.com/svn/svn-tutorial.html 记一次 svn 管理的项目迁移工作 之前A服务器上的项目版本管理工具是用的SVN,后来,之前管理linux服务器的员工离职了,这管理服务器的工作也就...

yeahlife
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部