You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

78 lines
2.4 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<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>