您的位置:首页 > 移动开发

移动开发:H5+实现APP自动下载更新(HBuilder)

2017-09-14 09:39 330 查看
这里的自动更新并非是热更新,而只是单纯检测服务器上是否有新的版本,如果有则下载安装。

思路:在服务器中配置一个版本文件:xxx.json



update:’yes’,//是否自动更新 

version:’1.0.8’,//最新的版本号 

url:’http://www.xxx.com/xxxxxx.apk‘//最新安装包的URL路径

}

在每次打开H5APP的时候,去请求这个JSON,比对本地的manifest.json中的版本信息是否和服务器上的版本一致,如果有更新的版本,则下载最新的安装包,下载到本地后,安装该软件覆盖原有软件。

代码:
ks.jsonp('http://www.xxxxx.cn/ksd/update_ksd.json','update_ksd');//此为跨域函数,因为APP中的文件都在本地,请求服务器的话需要通过跨域才能拿到数据。

//服务器上的json文件
//因为是跨域的所以返回的是函数而不是JSON数据,参数是JSON格式
update_ksd({
state:'yes',
version:'1.0.8',
url:'http://www.ccccccc.com/xxxx.apk'

})

function update_ksd(data)//跨域请求后的回调函数
{

var new_json=data;
if(new_json.state=='yes')//如果是自动更新,则判断版本号
{
$.ajax({
type: "get",
url: "manifest.json",
async: true,
success: function(res) {
var data = JSON.parse(res);
var version=data.version.name;

var new_version=new_json.version.replace(/\./g,'');
version=version.replace(/\./g,'');
if(new_version>version)//比对版本号
{
//console.log(new_version+'新版本'+version);
plus.nativeUI.confirm("应用有新版本,是否立即下载更新?", function(event) {
if(event.index == 1) {
plus.nativeUI.showWaiting();

ks.update_ksd(new_json.url);//更新函数,在下面

}
}, 'xxx', ['取消', '确认']);
}
}
});

}
}

//ks.update_ksd==========
update_ksd:function(url){
//console.log(url);
//创建下载管理对象
var dtask = plus.downloader.createDownload(url,{}, function ( d, status ) {
// 下载完成
if ( status == 200 ) { //下载成功后的回调函数
plus.nativeUI.toast( "下载成功,准备安装" + d.filename );
//安装程序,第一个参数是路径,默认的下载路径在_downloads里面
plus.runtime.install('_downloads/ksd.apk',{},function(){
plus.nativeUI.toast('安装成功');},function(){plus.nativeUI.toast('安装失败');});
plus.nativeUI.closeWaiting();
} else {
alert( "下载失败 " + status );

}
});
//dtask.addEventListener( "statechanged", onStateChanged, false );
dtask.start(); //开始下载任务
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69

之后每次需要更新版本就不用让用户去扫描二维码之类的,每次登陆进去自动判断是否有新版本,如果确认下载,则下载安装最新版本。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android
相关文章推荐