功能描述:实现mui框架开发的app能够在线检测是否有新版本,如果有新版本提示用户进行更新。
实现原理:通过判断当前app版本与网络最新版本进行提示更新。
步骤:
一、获取本地当前App版本。
mui.getJSON("配置文件路径,如:‘../manifest.json’", null, function(manifest){
versionName = manifest.version.name;
versionCode = Number(manifest.version.code);
mui.toast("版本名称:"+versionName+",版本code:"+versionCode);
});
如图:code为版本编号,name为版本名称,版本编号为判断版本是否需要更新的关键。
二、获取网络最新版本信息(如版本编号)。
三、下载新版本(使用mui的下载器进行下载)。
// 开始下载
function dowload (){
var options = {method:"GET"};
dtask = plus.downloader.createDownload(下载链接, options );
dtask.addEventListener( "statechanged", function(task,status){
switch(task.state) {
case 1: // 开始
mui.toast("开始下载...")
break;
case 2: // 已连接到服务器
mui.toast("连接到服务器...")
document.getElementById("new_grade_content").innerHTML = "正在下载:
break;
case 3: // 已接收到数据
alert(task.downloadedSize) // 已下载文件大小
alert(task.totalSize) // 文件大小
break;
case 4: // 下载完成
mui.toast("下载完成!")
console.log(task.totalSize)
plus.io.resolveLocalFileSystemURL(task.filename, function(entry) {
alert(entry.toLocalURL()+"") // 显示下载的文件存储绝对地址
console.log(entry.toLocalURL()) //绝对地址
});
alert(task.filename) // 显示下载好的文件名称
break;
}
} );
dtask.start();
}
四、安装下载好的app
// 判断文件是否存在,不存在则不安装
plus.io.resolveLocalFileSystemURL(plus.storage.getItem("new_app_filename"),function(entry){
// 如果存在进行安装
if(entry.isFile){
plus.runtime.install(app的文件路径, {}, function(){
alert("安装成功")
}, function(){
alert("安装失败")
});
}else{
// 不存在
alert("文件不存在")
}
},function(e){});
注:以此记录,欢迎互相讨论,不喜勿喷。
更多推荐
mui实现APP在线更新版本(mui文件下载)
发布评论