|
|
<script>
|
|
|
export default {
|
|
|
onLaunch: async function() {
|
|
|
try {
|
|
|
// 获取小程序启动参数
|
|
|
const launchOptions = uni.getLaunchOptionsSync()
|
|
|
console.log('小程序启动参数:', launchOptions)
|
|
|
|
|
|
// 判断是否从分享链接进入
|
|
|
// 1. 检查场景值:1007表示单人聊天会话中的小程序消息卡片,1008表示群聊会话中的小程序消息卡片
|
|
|
// 2. 检查referrerInfo:分享者的信息
|
|
|
// 3. 检查query参数:分享链接会带有参数
|
|
|
const isFromShare = launchOptions.scene === 1007 ||
|
|
|
launchOptions.scene === 1008 ||
|
|
|
launchOptions.scene === 1044 || // 群聊会话中的小程序消息卡片(新版)
|
|
|
(launchOptions.referrerInfo && launchOptions.referrerInfo.appId) ||
|
|
|
(launchOptions.query && Object.keys(launchOptions.query).length > 0)
|
|
|
|
|
|
console.log('是否从分享链接进入:', isFromShare)
|
|
|
|
|
|
// 存储分享进入状态
|
|
|
uni.setStorageSync('isFromShare', isFromShare)
|
|
|
|
|
|
// 如果是从分享链接进入,存储相关信息
|
|
|
if (isFromShare) {
|
|
|
console.log('从分享链接进入,跳过token检查')
|
|
|
|
|
|
// 存储分享进入的详细信息
|
|
|
uni.setStorageSync('shareLaunchTime', Date.now())
|
|
|
if (launchOptions.query) {
|
|
|
uni.setStorageSync('shareQuery', launchOptions.query)
|
|
|
}
|
|
|
if (launchOptions.referrerInfo) {
|
|
|
uni.setStorageSync('shareReferrer', launchOptions.referrerInfo)
|
|
|
}
|
|
|
|
|
|
uni.showToast({
|
|
|
title: '从分享链接进入,跳过token检查',
|
|
|
icon: 'none'
|
|
|
})
|
|
|
|
|
|
return
|
|
|
} else {
|
|
|
// 不是从分享进入,清除可能存在的分享缓存
|
|
|
uni.removeStorageSync('isFromShare')
|
|
|
uni.removeStorageSync('shareLaunchTime')
|
|
|
uni.removeStorageSync('shareQuery')
|
|
|
uni.removeStorageSync('shareReferrer')
|
|
|
}
|
|
|
|
|
|
// 不是从分享进入,进行正常的token检查
|
|
|
if(this.base.isNull(this.vuex_token)){
|
|
|
uni.redirectTo({
|
|
|
url:'/package_sub/login/login'
|
|
|
})
|
|
|
}else{
|
|
|
const user = await this.$u.api.getUser()
|
|
|
console.log("user",user)
|
|
|
this.$u.vuex('vuex_user', user)
|
|
|
}
|
|
|
|
|
|
} catch (err) {
|
|
|
console.error(err)
|
|
|
}
|
|
|
},
|
|
|
onShow: function() {
|
|
|
|
|
|
},
|
|
|
onHide: function() {
|
|
|
console.log('App Hide')
|
|
|
}
|
|
|
}
|
|
|
</script>
|
|
|
|
|
|
<style lang="scss">
|
|
|
/*每个页面公共css */
|
|
|
@import "uview-ui/index.scss";
|
|
|
</style> |