BJ_Q
BJ_Q
  • 发布:2020-08-14 17:35
  • 更新:2020-08-14 17:35
  • 阅读:1109

关于热更新的实现

分类:uni-app

在App.vue文件里onLaunch: function () {}方法实现如下:

          //判断客户端,根据业务来判断你是否需要传此参数 ,不要删掉即可  
         var clent=uni.getSystemInfoSync().platform  
         var client_category=2  
          if(clent=='android'){  
             client_category=2  
          }  
          if(clent=='ios'){  
             client_category=1  
          }   

plus.runtime.getProperty(plus.runtime.appid, function(widgetInfo) {       
        // console.log("widgetInfo.version:"+widgetInfo.version)  
    uni.request({    
        url:'https://url/api/get_versions',  
        data: {    
            "version": widgetInfo.version,    
       "client_category":client_category      
        },    

        success: (result) => {   
            var data = result.data;    
            // is_update 是否热更新  
           //wgt_url  热更新包地址  
            if ((data.is_update==true) &&(data.wgt_url != '' ))) {    
                // uni.showLoading({  
                //  title:'努力加载中...'  
                // })  
                // console.log("data.is_update :"+data.is_update)  
                // console.log("data.wgt_url  :"+data.wgt_url  )  
                uni.downloadFile({    
                    url: data.wgt_url,    
                    success: (downloadResult) => {    
                        if (downloadResult.statusCode === 200) {    
                            plus.runtime.install(downloadResult.tempFilePath, {    
                                force: false    
                            }, function() {    
                                  // uni.hideLoading()  
                                  plus.runtime.restart();    
                            }, function(e) {    
                                // console.log("热更新:"+JSON.stringify(e))  
                            });    
                        }   

                    }    
                });    
            }    
        } ,  
    });    
});  
1 关注 分享
2***@qq.com

要回复文章请先登录注册