hbuilder打包打包web2app配置检查更新并显示更新下载进度

在app.js文件中配置:

...
onShow: function() {
    console.log('show');
	var ua = navigator.userAgent;
	if(ua.indexOf('Html5Plus') > -1 && ua.indexOf('StreamApp') == -1) {
		var server = "http://xxxx.com/update"; //检查更新地址
		var req = { //升级检测数据
			"versionCode":plus.runtime.versionCode,
		};
		//注释部分是wap2app封装请求
		wap2app.ajax.post(server, req, function(rsp) {
			if(rsp.code == 200000 && rsp.data != 'none'){
				plus.nativeUI.alert("新版本可用", function(event) {
					var dtask = plus.downloader.createDownload(
						rsp.data,
						{},
						function(d, status) {
						  console.log('下载完成!');
						  if (status == 200) {
							plus.runtime.install(plus.io.convertLocalFileSystemURL(d.filename), {}, e => e, function(error) {
							 console.log('安装失败-01!');
							})
						  } else {
							console.log('更新失败-02!');
						 }
					});
					//设置检查更新进度显示
					try {
						dtask.start(); // 开启下载的任务
						var prg = 0;
						var showLoading = plus.nativeUI.showWaiting("正在下载");  //创建一个showWaiting对象 
						dtask.addEventListener('statechanged', function(
						  task,
						  status
						) {
						  // 给下载任务设置一个监听 并根据状态  做操作
						  switch (task.state) {
							case 1:
							  showLoading.setTitle("正在下载");
							  break;
							case 2:
							  showLoading.setTitle("已连接到服务器");
							  break;
							case 3:
							  prg = parseInt(
								(parseFloat(task.downloadedSize) /
								  parseFloat(task.totalSize)) *
								  100
							  );
							  showLoading.setTitle("  正在下载" + prg + "%  ");
							  break;
							case 4:
							   plus.nativeUI.closeWaiting();
								//下载完成
							  break;
						  }
						});
					 } catch (err) {
						  plus.nativeUI.closeWaiting();
						  console.log('更新失败-03')
					 }
					
					
				}, "提示", "立即更新");
			}
		});
	}
},
...

猜你喜欢

转载自blog.csdn.net/weixin_36185028/article/details/103126477