admin管理员组

文章数量:1558033

检查更新 

export default {
	onLaunch: function() {
		console.log('App Launch');
		// 检查更新
		//#ifdef APP-PLUS  
		plus.runtime.getProperty(plus.runtime.appid, (wgtinfo) => {
			var version = wgtinfo.version // 客户端版本号
			let update = {
				url: this.$URL + '/api/xxxx/xxx?version=' + version,
				success: (res) => {
				if (res.data.updated === true) { // 如果服务器版本大于客户端版本则提醒更新
					var url = res.data.url
					uni.showModal({
					  title: '版本更新',
					  content: '有新的版本发布,是否立即进行新版本下载',
					  success: (res) => {
					  if (res.confirm) {
					  console.log('用户点击确定');
                                          // plus.runtime.openURL(url); 打开浏览器去下载
                                          // 调用下载方法
					  this.updateAPP(url) // app内下载
					  } else if (res.cancel) {
					  console.log('用户点击取消');
					      }
					    }
					 });
				      }
				   }
				}
                               // 请求自己的api,与服务器版本进行比对,落后则执行官方的API更新应用
				this.$apiReq.req(update) 
			})
			//#endif  
			
	},
	methods:{
		 updateAPP(url) {
			 console.log('正在更新: url='+ url)
                        // 官方API
			 var dtask = plus.downloader.createDownload(url,{},function(d,status){ 
			 	//d为下载的文件对象
			 	if(status==200){
			 		//下载成功,d.filename是文件在保存在本地的相对路径,使用下面的API可转为平台绝对路径
			 		var fileSaveUrl = plus.io.convertLocalFileSystemURL(d.filename);
			 		plus.runtime.openFile(d.filename);	   //选择软件打开文件
			     }else{	
			     	//下载失败
			     	plus.downloader.clear();        //清除下载任务
			     }
			 })
			 dtask.start();
		}
	},
	 onShow: function() {
			console.log('App Show');
		},
      onHide: function() {
			console.log('App Hide');
		}
	}

APP安卓离线打包后更新无法弹出安装

1.问题是因为没有添加APP安装应用的权限,解决方法在manifest.json文件里面APP模块权限配置Android打包权限配置勾选以下权限

<uses-permission android:name=\"android.permission.INSTALL_PACKAGES\"/>  
<uses-permission android:name=\"android.permission.REQUEST_INSTALL_PACKAGES\"/>

2. 将build.gradle中的targetSdkVersion调到26或者更高

3.在Androidmanifest.xml的application节点下添加provider节点,将里面的io.dcloud.HBuilder改成自己应用的包名。

    <provider  
        android:name="io.dcloudmon.util.DCloud_FileProvider"  
        android:authorities="XXXX.XXX.XX(当前的应用包名).dc.fileprovider"  
        android:exported="false"  
        android:grantUriPermissions="true">  
        <meta-data  
            android:name="android.support.FILE_PROVIDER_PATHS"  
            android:resource="@xml/dcloud_file_provider" />  
    </provider>  

4.在Androidmanifest.xml中添加权限

<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"/>  

可参考:https://ask.dcloud/article/35703

本文标签: 离线弹出版本Uniapp