39 lines
1.1 KiB
Vue
39 lines
1.1 KiB
Vue
<script setup lang="ts">
|
||
import { onHide, onLaunch, onShow } from '@dcloudio/uni-app'
|
||
import { navigateToInterceptor } from '@/router/interceptor'
|
||
import { useUserStore, ClientType } from '@/store/user'
|
||
import { tabbarStore } from '@/tabbar/store'
|
||
|
||
onLaunch((options) => {
|
||
console.log('App.vue onLaunch', options)
|
||
|
||
// 根据已存储的客户端类型恢复 tabbar 配置
|
||
const userStore = useUserStore()
|
||
if (userStore.clientType && userStore.clientType !== ClientType.USER) {
|
||
tabbarStore.setTabbarByClientType(userStore.clientType)
|
||
console.log('Restored tabbar for clientType:', userStore.clientType)
|
||
}
|
||
})
|
||
|
||
onShow((options) => {
|
||
console.log('App.vue onShow', options)
|
||
// 处理直接进入页面路由的情况:如h5直接输入路由、微信小程序分享后进入等
|
||
// https://github.com/unibest-tech/unibest/issues/192
|
||
if (options?.path) {
|
||
navigateToInterceptor.invoke({ url: `/${options.path}`, query: options.query })
|
||
}
|
||
else {
|
||
navigateToInterceptor.invoke({ url: '/' })
|
||
}
|
||
})
|
||
|
||
onHide(() => {
|
||
console.log('App Hide')
|
||
})
|
||
</script>
|
||
|
||
<style lang="scss">
|
||
|
||
</style>
|
||
|