代码拉取完成,页面将自动刷新
<script>
import Vue from 'vue'
import store from './store/index.js'
import updateCustomBarInfo from './tuniao-ui/libs/function/updateCustomBarInfo.js'
export default {
data() {
return {
version: 100, //注意你在uniapp中打包(原生app-云打包)时候的初始版本号
show: false,
percentVal: ""
}
},
methods: {
androidCheckUpdate() {
let _this = this;
uni.request({
url: 'http://140.207.37.210:8091/smartAppversion.json?_t=' + new Date()
.getTime(), //这个是把你apk部署外网服务器的tomcat能访问下载的地址,具体你根据自己的来,然后smartAppversion.json是存放你最新版本好的下载地址啥的和apk关联起来,下面我会展示出代码
data: {},
header: {},
success: (res) => {
if (res.data.code === 200) {
if (res.data.version != _this.version) { // 如果最新版本大于现在已经安装的App的版本
uni.showModal({
title: '更新提示',
content: '新版本已经准备就绪,需要下载并重新安装',
showCancel: false,
success: (res2) => {
if (res2.confirm) {
// 新建下载任务
console.log(res)
var dtask = plus.downloader.createDownload(res.data
.url, {
force: true
},
function(d, status) {
// 下载完成
if (status == 200) {
_this.show = false
uni.showModal({
title: '下载完成,即将安装',
showCancel: false,
success: () => {
// 由于install只能安装本地的地址,所以先把下载的地址在本地找到,再调用install
plus.runtime
.install((d
.filename
), {},
function() {
console
.log(
'success'
);
plus.runtime
.restart(); // 安装成功后重启
},
function(
error
) {
console
.log(
error
.message
);
uni.showToast({
title: "安装失败",
duration: 1500
})
})
}
})
} else {
uni.showToast({
title: '更新失败',
duration: 1500
})
}
})
dtask.start();
var prg = 0;
var showLoading = plus.nativeUI.showWaiting(
"正在下载"); //创建一个showWaiting对象
dtask.addEventListener('statechanged', function(
task,
status
) {
// 给下载任务设置一个监听 并根据状态 做操作
switch (task.state) {
case 1:
showLoading.setTitle("正在下载");
break;
case 2:
showLoading.setTitle("已连接到服务器");
break;
case 3:
prg = parseInt(
(parseFloat(task
.downloadedSize
) /
parseFloat(task
.totalSize)) *
100
);
showLoading.setTitle(" 正在下载" +
prg + "% ");
break;
case 4:
plus.nativeUI.closeWaiting();
//下载完成
break;
}
});
}
}
})
} else {
//如果是最新版本了,进入首页就会提示一下,建议屏蔽掉
// uni.showModal({
// title: '当前已是最新版本',
// showCancel: false
// })
}
}
}
})
}
},
onLaunch: function() {
var that = this
plus.runtime.getProperty(plus.runtime.appid, (wgtinfo) => {
that.version = wgtinfo.versionCode;
// that.show = true
that.androidCheckUpdate(); // app中检测版本更新
})
let token = uni.getStorageSync('token');
if (token) {
//存在则关闭启动页进入首页
// #ifdef APP-PLUS
plus.navigator.closeSplashscreen();
// #endif
} else {
//不存在则跳转至登录页
uni.reLaunch({
url: "/pages/login/index",
success: () => {
// #ifdef APP-PLUS
plus.navigator.closeSplashscreen();
// #endif
}
})
}
uni.getSystemInfo({
success: function(e) {
// #ifndef H5
// 获取手机系统版本
const system = e.system.toLowerCase()
const platform = e.platform.toLowerCase()
// 判断是否为ios设备
if (platform.indexOf('ios') != -1 && (system.indexOf('ios') != -1 || system
.indexOf(
'macos') != -1)) {
Vue.prototype.SystemPlatform = 'apple'
} else if (platform.indexOf('android') != -1 && (system.indexOf('android') != -
1)) {
Vue.prototype.SystemPlatform = 'android'
} else {
Vue.prototype.SystemPlatform = 'devtools'
}
// #endif
}
})
// 获取设备的状态栏信息和自定义顶栏信息
// store.dispatch('updateCustomBarInfo')
updateCustomBarInfo().then((res) => {
store.commit('$tStore', {
name: 'vuex_status_bar_height',
value: res.statusBarHeight
})
store.commit('$tStore', {
name: 'vuex_custom_bar_height',
value: res.customBarHeight
})
})
// #ifdef MP-WEIXIN
//更新检测
if (wx.canIUse('getUpdateManager')) {
const updateManager = wx.getUpdateManager();
updateManager && updateManager.onCheckForUpdate((res) => {
if (res.hasUpdate) {
updateManager.onUpdateReady(() => {
uni.showModal({
title: '更新提示',
content: '新版本已经准备就绪,是否需要重新启动应用?',
success: (res) => {
if (res.confirm) {
uni.clearStorageSync() // 更新完成后刷新storage的数据
updateManager.applyUpdate()
}
}
})
})
updateManager.onUpdateFailed(() => {
uni.showModal({
title: '已有新版本上线',
content: '小程序自动更新失败,请删除该小程序后重新搜索打开哟~~~',
showCancel: false
})
})
} else {
//没有更新
}
})
} else {
uni.showModal({
title: '提示',
content: '当前微信版本过低,无法使用该功能,请更新到最新的微信后再重试。',
showCancel: false
})
}
// #endif
},
onShow: function() {
// console.log('App Show')
},
onHide: function() {
// console.log('App Hide')
}
}
</script>
<style lang="scss">
/* 注意要写在第一行,同时给style标签加入lang="scss"属性 */
@import './tuniao-ui/index.scss';
@import './tuniao-ui/iconfont.css';
@import './tuniao-ui/TnEmoWorm.css';
@import './tuniao-ui/TnEmoCat.css';
@import './tuniao-ui/TnEmoji.css';
.uni-scroll-view {
overflow: auto !important;
}
</style>
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。