<script>
|
import {getLastApp} from 'api/index.js';
|
import VUE_APP_BASE_URL from 'common/constant.js'
|
|
var jpushModule = uni.requireNativePlugin("JG-JPush")
|
export default {
|
data() {
|
return {
|
version: ''
|
}
|
},
|
onLaunch: function() {
|
|
console.log('App Launch',jpushModule)
|
jpushModule.initJPushService();
|
jpushModule.setLoggerEnable(true);
|
jpushModule.addConnectEventListener(result=>{
|
let connectEnable = result.connectEnable
|
uni.$emit('connectStatusChange',connectEnable)
|
});
|
//消息回调——点击通知栏消息 跳转指定页面
|
jpushModule.addNotificationListener(result=>{
|
if (result.notificationEventType == "notificationOpened") {
|
//判断是否登录
|
if (uni.getStorageSync('tk')) {
|
//工作通知——工作人员工作通知页
|
if (result.title.includes('工作通知')){
|
uni.switchTab({
|
url: '/pages/tabBar/notice/notice',
|
})
|
//信息审核——领导审核页
|
}else if(result.title == '您有新的信息需要审批'){
|
uni.switchTab({
|
url: '/pages/tabBar/examine/examine',
|
})
|
//审核结果——首页(后续加pc端信息发布页)
|
}else if(result.title.includes('信息审核')){
|
uni.switchTab({
|
url: '/pages/tabBar/information/information',
|
})
|
}
|
}else {
|
console.log("未登录")
|
//未登录跳转首页
|
uni.navigateTo({
|
url: '/pages/index/index',
|
complete(res) {
|
console.log(res);
|
}
|
})
|
uni.showToast({
|
icon: 'none',
|
title: '请先登录',
|
duration: 3000
|
})
|
}
|
}
|
});
|
jpushModule.addCustomMessageListener(result=>{
|
let type = result.type
|
let messageType = result.messageType
|
let content = result.content
|
uni.showToast({
|
icon: 'none',
|
title: JSON.stringify(result),
|
duration: 3000
|
})
|
});
|
jpushModule.addLocalNotificationListener(result=>{
|
let messageID = result.messageID
|
let title = result.title
|
let content = result.content
|
let extras = result.extras
|
uni.showToast({
|
icon: 'none',
|
title: JSON.stringify(result),
|
duration: 3000
|
})
|
})
|
|
|
|
|
// jpushModule.addGeofenceListener(result => {
|
// let code = result.code
|
// let type = result.type
|
// let geofenceId = result.geofenceId
|
// let userInfo = result.userInfo
|
// uni.showToast({
|
// icon: 'none',
|
// title: '触发地理围栏',
|
// duration: 3000
|
// })
|
// })
|
// jpushModule.setIsAllowedInMessagePop(true)
|
// jpushModule.pullInMessage(result => {
|
// let code = result.code
|
// console.log(code)
|
// })
|
|
// jpushModule.addInMessageListener(result => {
|
// let eventType = result.eventType
|
// let messageType = result.messageType
|
// let content = result.content
|
// console.log('inMessageListener', eventType, messageType, content)
|
|
// uni.showToast({
|
// icon: 'none',
|
// title: JSON.stringify(result),
|
// duration: 3000
|
// })
|
// })
|
|
},
|
onShow: function() {
|
plus.runtime.getProperty(plus.runtime.appid, wgtinfo => {
|
this.version = wgtinfo.version;
|
if(this.version){
|
this.getMaxVersion();
|
}
|
})
|
|
console.log('App Show')
|
|
|
},
|
onHide: function() {
|
// jpushModule.initJPushService();
|
console.log('App Hide')
|
},
|
methods: {
|
// 获取最新版本
|
getMaxVersion() {
|
uni.getSystemInfo({
|
success: (res) => {
|
getLastApp().then(res => {
|
if (res.code === 100) {
|
console.log(res,'res');
|
this.updateVersion(res.data);
|
}
|
})
|
},
|
});
|
},
|
|
// 版本对比
|
updateVersion(data) {
|
const lastVersion = data.version; //最新版本
|
const curVersion = this.version; // 当前版本
|
console.log("lastVersion",lastVersion)
|
console.log("curVersion",curVersion)
|
if (curVersion && lastVersion) {
|
const curNum = parseInt(curVersion.replace(/[,|.]/g, ''))
|
const lastNum = parseInt(lastVersion.replace(/[,|.]/g, ''))
|
|
if (lastNum > curNum) {
|
this.showFly(data.attachmentInfo.fileUrl,lastVersion);
|
|
}
|
}
|
},
|
// 版本下载 升级
|
showFly(url,lastVersion) {
|
console.log("url",url)
|
uni.showModal({
|
title: "更新提示",
|
content: `发现新版本${lastVersion},立即升级!`,
|
showCancel: false, // 如果是强制更新就不显示取消按钮
|
success: (e) => {
|
if (e.confirm) {
|
uni.showLoading({
|
title: "更新中……",
|
});
|
const downloadTask = uni.downloadFile({
|
url: VUE_APP_BASE_URL + url, // 这个是最新版本apk包的地址
|
success: (res) => {
|
uni.hideLoading();
|
if (res.statusCode === 200) {
|
console.log("url",VUE_APP_BASE_URL + url)
|
plus.runtime.install(res.tempFilePath, { force: true }, _res => {
|
uni.showToast({
|
title: "更新成功,重启中",
|
duration: 1600,
|
});
|
plus.runtime.restart();
|
uni.hideToast();
|
}
|
);
|
} else {
|
uni.showToast({
|
title: "下载失败!",
|
icon: "none",
|
duration: 800,
|
});
|
}
|
},
|
});
|
}
|
},
|
});
|
}
|
}
|
}
|
|
</script>
|
|
<style lang="scss">
|
@import "@/uni_modules/uview-ui/index.scss";
|
/*每个页面公共css */
|
@import '@/uni_modules/uni-scss/index.scss';
|
/* #ifndef APP-NVUE */
|
@import '@/static/customicons.css';
|
// 设置整个项目的背景色
|
page {
|
background-color: #f5f5f5;
|
height: 100%;
|
}
|
|
/* #endif */
|
.example-info {
|
font-size: 14px;
|
color: #333;
|
padding: 10px;
|
}
|
</style>
|