mui实现APP在线更新版本(mui文件下载)

功能描述:实现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);
});

mui实现APP在线更新版本(mui文件下载)_第1张图片

如图: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文件下载))