consumer-app/App.vue

90 lines
2.5 KiB
Vue
Raw Blame History

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 {
globalData: {
// 用于从首页跳转到服务页面时传递需要高亮的分类
serviceCategory: null
},
onLaunch: function() {
console.log('App Launch')
// 检查登录状态
this.checkLoginStatus()
},
onShow: function() {
console.log('App Show')
// 1. uni-app 中通过 uni.getEnterOptionsSync() 调用和微信小程序API一致只是前缀改为uni
const options = uni.getEnterOptionsSync();
console.log("查询到的返回数据")
console.log(options)
// 2. 注意scene 返回的是数字类型,不是字符串!原生代码中写 '1038' 会导致判断失败
if (options.scene === 1038 &&
options.referrerInfo?.appId === 'wxef277996acc166c3') {
// 从收银台小程序返回的逻辑
const extraData = options.referrerInfo.extraData;
if (!extraData) {
uni.showToast({
title: '当前通过物理按键返回,未接收到返参,建议自行查询交易结果',
icon: 'none',
duration: 3000
});
} else {
if (extraData.code === 'success') {
uni.showToast({
title: '支付成功',
icon: 'success'
});
} else if (extraData.code === 'cancel') {
uni.showToast({
title: '支付已取消',
icon: 'none'
});
} else {
uni.showToast({
title: `支付失败:${extraData.errmsg || '未知错误'}`,
icon: 'none',
duration: 3000
});
}
}
}
},
onHide: function() {
console.log('App Hide')
},
methods: {
// 检查登录状态
checkLoginStatus() {
const token = uni.getStorageSync('token')
// 如果有token且当前在登录页则跳转到首页
if (token) {
// 延迟一下,确保页面已经初始化
setTimeout(() => {
const pages = getCurrentPages()
const currentPage = pages[pages.length - 1]
const currentRoute = currentPage ? currentPage.route : ''
// 如果当前在登录页,跳转到首页
if (currentRoute === 'pages/login/login') {
uni.switchTab({
url: '/pages/index/index',
fail: () => {
// 如果switchTab失败可能不在tabBar页面使用reLaunch
uni.reLaunch({
url: '/pages/index/index'
})
}
})
}
}, 100)
}
}
}
}
</script>
<style>
/*每个页面公共css */
</style>