网站内容自动更新(上是否有新的版本,如果有则下载安装。)

优采云 发布时间: 2022-02-10 10:37

  网站内容自动更新(上是否有新的版本,如果有则下载安装。)

  这里的自动更新不是热更新,只是简单的检测服务器上是否有新版本,如果有就下载安装。

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

  {

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

  version:'1.0.8',//最新版本号

  url:''//最新安装包的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(); //开始下载任务

}

  之后,每次需要更新版本时,就不需要让用户扫描二维码之类的了。每次登录都会自动判断是否有新版本。如果您确认下载,请下载并安装最新版本。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线