附上一个uniapp热更新的插件 https://ext.dcloud.net.cn/plugin?id=6019
用的时候插件里面已经写的很清楚了 把热更新放倒首页
1.下载完插件之后引用插件
import appUpdate from '../../components/app-update/app-update.vue'
2.
然后把下面这行代码扔到template里面
<appUpdate v-if="show" :upTit="upTit" :infoList="infoList" :downUrl="downUrl" @close="close" @updateSucc="updateSucc" @updateErro="updateErro" @downOver="downOver" @maskClick="maskClick"></appUpdate>
3. 再把这个粘贴扔进去就行了
改好自己的下载地址
import appUpdate from '../../components/app-update/app-update.vue'
export default {
data() {
return {
show:false,
upTit: '升级标题',
infoList:[
"1.更新了手机爆炸的按钮",
"2.更新了一键格式化手机的按钮"
],
downUrl:"https://www.baidu.apk",//模拟APK地址,非真实地址
}
},
onLoad() {
this.downUrl = "https://dldir1.qq.com/music/clntupate/QQMusic72282.apk"
this.isUpdate()
},
components:{
appUpdate
},
methods: {
isUpdate(){
//模拟调用后端接口来判断是否要更新APP
// let res = await isUpdate({
// verson:plus.runtime.version
// })
// if(res.data.code==200){
// this.updateFlag = true
// }
// console.log(plus.runtime.version, "当前APK的版本号")
//只在自定义基座和打包出的APP可以看到正确的版本号
// #ifdef APP-PLUS 这是我自己写的 有更好方法的小伙伴欢迎到下面留言哦
var system = uni.getSystemInfoSync() //获取系统信息的同步接口
if (system.brand != "Apple") {
let versionNow
let versionServer
this.$rqt.mine_getVersion().then(res => { //调用更新接口 自己写的啥自己改
versionServer = res.data.split(".").join("") // 截取当前版本号
plus.runtime.getProperty(plus.runtime.appid, (wgtinfo) => {
//应用版本号
versionNow = wgtinfo.version.split(".").join("") //获取应用版本号
if (versionNow < versionServer) { //判断一下 然后更新就行了 用!= 也行 应该没有会往下更新的吧
this.show = true
}
})
})
}
// #endif
this.show = true
},
open(){
this.show = true
console.log(this.show)
},
close(){
console.log("关闭弹窗")
this.show = false
},
updateSucc(){
console.log("监听安装成功")
},
updateErro(){
console.log("监听安装失败")
},
downOver(){
console.log("监听文件下载成功")
},
maskClick(){
console.log("遮罩层呗点击")
this.show = false
}
}
}