Uniapp 之 获取 app 的版本号 以及实现全量更新和增量更新

  
  
  在实际开发中,我们经常要给app做相应的全量更新以及增量更新,什么是全量更新以及增量更新在此便不做赘述了;相应的获取版本号等信息uniapp官方文档中已经给出了相应的api
在这里插入图片描述
实际开发中代码如下(建议把检查版本更新的代码放置在 App.vue 中):

//版本更新
checkVersion(){
    
    
	var baseUrl = $config.baseUrl // 获取自定义的配置文件的baseUrl
	var packVersion = plus.runtime.version 
	var appid = plus.runtime.appid 
    plus.runtime.getProperty(plus.runtime.appid, function(widgetInfo) {
    
     
        uni.request({
    
      
            url: `xxxxxxxxxxxxxx`, // 后端写的检查更新的接口  
            data: {
    
      
				appId: appid, // 应用AppID(唯一标识)
				packVersion: widgetInfo.version, 
			    resPackVersion: widgetInfo.version, // 应用版本号 (资源包版本)                
				jsVersion: widgetInfo.name // 应用名称 
		    },  
		    success: (result) => {
    
      
				console.log('result',result.data)
                var data = result.data;  
                if (data.data.upgrade && data.data.path) {
    
     
					if(data.data.upgrade == 'patch'){
    
     // 资源包更新
						console.log('data.data.path',data.data.path)
						uni.downloadFile({
    
     // 下载资源包
						    url: data.data.path,  
						    success: (downloadResult) => {
    
     
								console.log('downloadResult',downloadResult)
						        if (downloadResult.statusCode === 200) {
    
      
						            plus.runtime.install(downloadResult.tempFilePath, {
    
     // 安装资源包 
						                force: false  
						            }, function() {
    
      
						                console.log('install success...');  
						                plus.runtime.restart(); // 重启APP  
						            }, function(e) {
    
      
						                console.error('install fail...');  
						            });  
						        }  
						    }  
						}); 
					}else if(data.data.upgrade == 'full'){
    
     // 整包更新
						 uni.showModal({
    
       
							title: "更新提示",  
							content: data.data.msg,  
							success: (res) => {
    
      
								if (res.confirm) {
    
     
									var appurl = ''
									if (plus.os.name == 'Android') {
    
      
									    appurl = data.data.path;  
									}  
									else{
    
      
									    appurl = data.data.pathIos;  
									}
									plus.runtime.openURL(appurl); // 跳转应用发布平台 
								}  
							}  
						}) 
					}                        
                      }  
                  }  
              });  
          });  
      }

代码中api介绍

  • plus.runtime.version:获取客户端的版本名称;

  • plus.runtime.appid:获取当前应用的APPID;

  • plus.runtime.getProperty:获取指定APPID对应的应用信息;

    该api回调函数的参数 widgetInfo

      widgetInfo.version:应用版本号;
      widgetInfo.name:应用名称

在这里插入图片描述

  • plus.runtime.install:安装应用

  • plus.runtime.restart():重启当前的应用

  • plus.os.name:判断当前的运行平台

  • plus.runtime.openURL(url):调用第三方程序打开指定的URL

……

当然好用的api还有很多很多,需要大家去发掘总结,至此,本文到此结束,如有不足,望大家多多指点! 谢谢!

猜你喜欢

转载自blog.csdn.net/Zhuangvi/article/details/112430585
今日推荐