campus-errand/miniapp/App.vue
2026-03-19 00:38:37 +08:00

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>