47 lines
1.1 KiB
Vue
47 lines
1.1 KiB
Vue
<script>
|
|
import { initIM } from './utils/im'
|
|
|
|
export default {
|
|
onLaunch: function() {
|
|
// 检查本地登录凭证,过期则静默清除,不跳转登录页
|
|
const token = uni.getStorageSync('token')
|
|
if (!token) return
|
|
|
|
try {
|
|
const parts = token.split('.')
|
|
if (parts.length === 3) {
|
|
const payload = JSON.parse(atob(parts[1]))
|
|
if (payload.exp && payload.exp * 1000 < Date.now()) {
|
|
// token 已过期,静默清除
|
|
uni.removeStorageSync('token')
|
|
uni.removeStorageSync('userInfo')
|
|
return
|
|
}
|
|
}
|
|
} catch (e) {
|
|
// 解析失败,清除无效 token
|
|
uni.removeStorageSync('token')
|
|
uni.removeStorageSync('userInfo')
|
|
return
|
|
}
|
|
|
|
// token 有效,后台初始化 IM
|
|
initIM().catch(e => {
|
|
console.log('[App] IM 初始化失败(非阻塞):', e.message)
|
|
})
|
|
},
|
|
onShow: function() {},
|
|
onHide: function() {}
|
|
}
|
|
</script>
|
|
|
|
<style>
|
|
/* 全局公共样式 */
|
|
page {
|
|
background-color: #F5F5F5;
|
|
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
|
|
font-size: 28rpx;
|
|
color: #333333;
|
|
}
|
|
</style>
|