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.

126 lines
3.9 KiB

<script>
export default {
onLaunch: async function() {
1 year ago
try {
// 获取小程序启动参数
const launchOptions = uni.getLaunchOptionsSync()
console.log('小程序启动参数:', launchOptions)
// 判断是否从分享链接进入
const isFromShare = launchOptions.scene === 1007 ||
launchOptions.scene === 1008 ||
9 months ago
launchOptions.scene === 1044 ||
(launchOptions.referrerInfo && launchOptions.referrerInfo.appId) ||
(launchOptions.query && Object.keys(launchOptions.query).length > 0)
console.log('是否从分享链接进入:', isFromShare)
// 存储分享进入状态
uni.setStorageSync('isFromShare', isFromShare)
9 months ago
// 如果是从分享链接进入检查是否是orderStaffDetail页面
if (isFromShare) {
// 存储分享进入的详细信息
uni.setStorageSync('shareLaunchTime', Date.now())
if (launchOptions.query) {
uni.setStorageSync('shareQuery', launchOptions.query)
}
if (launchOptions.referrerInfo) {
uni.setStorageSync('shareReferrer', launchOptions.referrerInfo)
}
9 months ago
// 检查是否是orderStaffDetail页面的分享
const isOrderDetailShare = this.orderStaffDetail(launchOptions.query)
uni.setStorageSync('isOrderDetailShare', isOrderDetailShare)
9 months ago
if (isOrderDetailShare) {
console.log('从orderStaffDetail页面分享进入跳过token检查')
// uni.showToast({
// title: '从订单详情分享进入跳过token检查',
// icon: 'none'
// })
return // 跳过token检查
} else {
console.log('从其他页面分享进入需要检查token')
// 清除分享缓存,因为需要正常登录
this.clearShareCache()
}
} else {
// 不是从分享进入,清除可能存在的分享缓存
9 months ago
this.clearShareCache()
}
9 months ago
// 进行正常的token检查
1 year ago
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')
9 months ago
},
3 months ago
// 监听隐私授权需要
onNeedPrivacyAuthorization(resolve) {
// #ifdef MP-WEIXIN
console.log('需要隐私授权', resolve)
// 用户触发隐私接口时,会触发此回调
// resolve 是一个函数,调用 resolve() 表示用户同意授权
// 调用 resolve({ buttonId: 'xxx', event: 'xxx' }) 表示用户点击了同意按钮
// 调用 resolve({ event: 'disagree' }) 表示用户点击了拒绝按钮
// 这里可以显示自定义的隐私授权弹窗
// 用户同意后调用 resolve()
// 用户拒绝后调用 resolve({ event: 'disagree' })
// 默认行为:直接同意(如果需要自定义弹窗,可以在这里实现)
// resolve()
// #endif
},
9 months ago
methods: {
// 检查是否是orderStaffDetail页面的分享
orderStaffDetail(query) {
// 检查查询参数中是否有id这通常表示是订单详情页
if (query && query.id) {
console.log('检测到订单详情页分享订单ID:', query.id)
return true
}
// 检查路径参数(如果有的话)
if (query && query.path) {
const path = query.path
if (path.includes('orderStaffDetail') || path.includes('orderDetail')) {
console.log('检测到订单详情页分享,路径:', path)
return true
}
}
return false
},
// 清除分享缓存
clearShareCache() {
uni.removeStorageSync('isFromShare')
uni.removeStorageSync('shareLaunchTime')
uni.removeStorageSync('shareQuery')
uni.removeStorageSync('shareReferrer')
uni.removeStorageSync('isOrderDetailShare')
}
}
}
</script>
<style lang="scss">
/*每个页面公共css */
@import "uview-ui/index.scss";
1 year ago
</style>