uni-app wap2app生成的APP检测更新,锁定竖屏

options: {
		debug: false,
		lockOrientation: 'landscape' //设置一直处于横屏
	},
	/**
	 * 当wap2app初始化完成时,会触发 onLaunch
	 */
	onLaunch: function() {
		console.log('launch');
		setTimeout(function() {
			plus.screen.unlockOrientation();
			//plus.screen.lockOrientation("landscape-primary");//锁定APP横屏
		}, 5000)
		// formatSize()
		function formatSize() {
			let that = this;
			plus.cache.calculate(function(size) {
				console.log(size)
				let sizeCache = parseInt(size);
				if (sizeCache == 0) {
					that.fileSizeString = "0B";
				} else if (sizeCache < 1024) {
					that.fileSizeString = sizeCache + "B";
				} else if (sizeCache < 1048576) {
					that.fileSizeString = (sizeCache / 1024).toFixed(2) + "KB";
				} else if (sizeCache < 1073741824) {
					that.fileSizeString = (sizeCache / 1048576).toFixed(2) + "MB";
				} else {
					that.fileSizeString = (sizeCache / 1073741824).toFixed(2) + "GB";
				}
			});
		}
		//清除缓存
		// clearCache()
		function clearCache() {
			let that = this;
			let os = plus.os.name;
			if (os == 'Android') {
				console.log(1)
				let main = plus.android.runtimeMainActivity();
				let sdRoot = main.getCacheDir();
				let files = plus.android.invoke(sdRoot, "listFiles");
				let len = files.length;
				for (let i = 0; i < len; i++) {
					let filePath = '' + files[i]; // 没有找到合适的方法获取路径,这样写可以转成文件路径  
					plus.io.resolveLocalFileSystemURL(filePath, function(entry) {
						if (entry.isDirectory) {
							entry.removeRecursively(function(entry) { //递归删除其下的所有文件及子目录  
								console.log('清除缓存')
								formatSize(); // 重新计算缓存  
							}, function(e) {
								console.log(e.message)
							});
						} else {
							entry.remove();
						}
					}, function(e) {
						console.log('文件路径读取失败')
					});
				}
			} else { // ios  
				plus.cache.clear(function() {
					console.log('清除缓存')
					formatSize();
				});
			}
		}
		var ua = navigator.userAgent;
		console.log(ua)
		if (ua.indexOf('Html5Plus') > -1 && ua.indexOf('StreamApp') == -1) {
			var url = ""; //检查更新地址  
			var req = { //升级检测数据  
				"appType": "pad",
			};
			wap2app.ajax.get(url, req, function(rsp) {
				if (rsp.success) {
					plus.runtime.getProperty(plus.runtime.appid, function(inf) {
						var wgtVer = inf.version;
						if (rsp.result.appVersion && parseFloat(rsp.result.appVersion) > wgtVer && rsp.result.appUrl) {
							plus.nativeUI.confirm("检测到新版本", function(event) {
								if (0 == event.index) { //用户点击了“立即更新”按钮
									plus.runtime.openURL(rsp.result.appUrl);
								}
							}, "更新提示", ["立即更新", "取  消"]);
						} else if (rsp.result.contentVersion && parseFloat(rsp.result.contentVersion) > wgtVer && rsp.result.wgtUrl) {
							downWgt(rsp.result.wgtUrl)
						} else {
							if (localStorage.getItem("version") && parseFloat(localStorage.getItem("version")) > wgtVer ) {
								wgtVer = parseFloat(localStorage.getItem("version"))
							}
							if ((rsp.result.appVersion && parseFloat(rsp.result.appVersion) > wgtVer) || (rsp.result.contentVersion &&
									parseFloat(rsp.result.contentVersion) > wgtVer)) {
								//网页升级了要清缓存
								clearCache()
								//判断是否保存
								localStorage.setItem("version", (rsp.result.appVersion ? rsp.result.appVersion : rsp.result.contentVersion))
							}
						}
					})
				}
			});

		}
		// var wgtVer=null;  
		// function plusReady(){  
		// // ......  
		// // 获取本地应用资源版本号  
		// plus.runtime.getProperty(plus.runtime.appid,function(inf){  
		//     wgtVer=inf.version;  
		// 	alert("当前应用版本:"+wgtVer)
		//     console.log("当前应用版本:"+wgtVer);  
		// });  
		// }  
		// if(window.plus){  
		// plusReady();  
		// }else{  
		// document.addEventListener('plusready',plusReady,false);  
		// }
		// //检测更新  
		// var checkUrl="http://demo.dcloud.net.cn/test/update/check.php";  
		// checkUpdate()
		// function checkUpdate(){  
		// plus.nativeUI.showWaiting("检测更新...");  
		// var xhr=new XMLHttpRequest();  
		// xhr.onreadystatechange=function(){  
		// 	console.log(xhr.readyState)
		//     switch(xhr.readyState){  
		//         case 4:  
		//         plus.nativeUI.closeWaiting();  
		//         if(xhr.status==200){  
		//             console.log("检测更新成功:"+xhr.responseText);  
		//             var newVer=xhr.responseText;  
		//             if(wgtVer&&newVer&&(wgtVer!=newVer)){  
		//                 downWgt();  // 下载升级包  
		//             }else{  
		//                 plus.nativeUI.alert("无新版本可更新!");  
		//             }  
		//         }else{  
		//             console.log("检测更新失败!");  
		//             plus.nativeUI.alert("检测更新失败!");  
		//         }  
		//         break;  
		//         default:  
		//         break;  
		//     }  
		// }  
		// xhr.open('GET',checkUrl);  
		// xhr.send();  
		// }
		// 下载wgt文件  
		// var wgtUrl="http://demo.dcloud.net.cn/test/update/H5EF3C469.wgt";  
		function downWgt(wgtUrl) {
			plus.nativeUI.showWaiting("下载wgt文件...");
			plus.downloader.createDownload(wgtUrl, {
				filename: "_doc/update/"
			}, function(d, status) {
				console.log("下载wgt成功:" + status);
				if (status == 200) {
					console.log("下载wgt成功:" + d.filename);
					installWgt(d.filename); // 安装wgt包  
				} else {
					console.log("下载wgt失败!");
					plus.nativeUI.alert("下载wgt失败!");
				}
				plus.nativeUI.closeWaiting();
			}).start();
		}
		// 更新应用资源  
		function installWgt(path) {
			plus.nativeUI.showWaiting("安装wgt文件...");
			plus.runtime.install(path, {}, function() {
				plus.nativeUI.closeWaiting();
				console.log("安装wgt文件成功!");
				plus.nativeUI.alert("应用资源更新完成!", function() {
					plus.runtime.restart();
				});
			}, function(e) {
				plus.nativeUI.closeWaiting();
				console.log("安装wgt文件失败[" + e.code + "]:" + e.message);
				plus.nativeUI.alert("安装wgt文件失败[" + e.code + "]:" + e.message);
			});
		}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值