uni-app热更新,HTML5+API

    技术2022-07-16  76

    0.热更新总体步骤如下

    1.获取app版本2.下载wgt更新包,并安装


    1.获取app版本

    官方获取app版本信息有坑,所以可以使用h5+的方案代替

    这里获取app版本的主要目的就是去判断是否需要更新。

    如果觉得这种获取方式麻烦也可以直接在状态机或者vue.prototype中直接存储一个当前版本。

    plus.runtime.getProperty(plus.runtime.appid,(res)=>{ console.log(res.version) }); //----------------------------------------- // 获取指定APPID对应的应用信息 // plus.runtime.getProperty(appid,callback) //----------------------------------------- // 获取appid // plus.runtime.appid //-----------------------------------------

    2.下载wgt更新包,并安装

    同上,uni官方依然有坑,使用h5+解决方案

    //新建一个下载任务 //download_url下载地址,一般是判断完是否需要更新后返回的下载地址 let download_url = 'https://110.110.110.110/system/download' let task = plus.downloader.createDownload(download_url,{ filename: '_doc/update/' + new Date().getTime() + '/', //文件的保存地址(这里可以不用动,一定要保证地址或包名是唯一的) }) //监听下载状态(res,state) task.addEventListener('statechanged',(res,state)=>{ this.max = res.totalSize //文件大小 this.rate = res.downloadedSize //已下载文件大小 //判断下载完成 if(res.state == 4 && state == 200){ //安装文件(res.filename是下载完成的文件) plus.runtime.install(res.filename,{},succ=>{ //安装成功回调 plus.runtime.restart(); //重启app },err=>{ //安装失败回调 console.log(err) }); } }) //开始下载任务 task.start()
    Processed: 0.009, SQL: 9