吉安感知网项目-前端
chenyao
14 hours ago 4c390d209b45d516fbe2f7552d26048687c83972
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
<script setup>
import { onHide, onLaunch, onShow } from '@dcloudio/uni-app'
import { useAppStore, useUserStore, useLocationStore } from '@/store'
import { useGlobalWS } from '@/hooks/useGlobalWS.js'
// #ifdef APP-PLUS
import { keepAliveStart, requestIgnoreBatteryOptimization, isIgnoringBatteryOptimizations } from '@/uni_modules/keep-app'
import { openDialog, allowFloat, getBatteryCapacity, allowBackgroundPopup, allowLockScreen } from '@/uni_modules/lgh-dialog'
// #endif
 
const appStore = useAppStore()
const userStore = useUserStore()
const locationStore = useLocationStore()
 
// #ifdef APP-PLUS
// const currentKey = ref(1)
// function testKeep() {
//     setInterval(() => {
//         currentKey.value = currentKey.value + 1
//         const val = '保活服务验证:' + currentKey.value
//         console.log(val)
//         uni.showToast({ title: val, icon: 'none' })
//     }, 1000)
// }
// testKeep()
// #endif
 
useGlobalWS()
 
onShow(async () => {
    console.log('App Show')
    // 确保只有在用户已登录的情况下才初始化位置服务
    if (userStore.userInfo && userStore.userInfo.username && locationStore) {
        try {
            await locationStore.initLocationService()
        } catch (error) {
            console.error('重新初始化位置服务失败:', error)
        }
    }
})
 
onHide(() => {
    console.log('App Hide')
    // 应用进入后台时,停止位置监听以节省资源
    if (locationStore) {
        locationStore.stopLocationWatch()
    }
})
 
function setKeepFun() {
    // #ifdef APP-PLUS
    keepAliveStart()
 
    //显示悬浮窗权限
    setTimeout(allowFloat, 5000)
    // 请求用户允许忽略电池优化(重要:用于保活)
    setTimeout(requestIgnoreBatteryOptimization, 10000)
    // 引导用户开启「后台弹出界面」权限
    setTimeout(allowBackgroundPopup, 15000)
    //  引导用户开启「锁屏显示」权限
    setTimeout(allowLockScreen, 20000)
 
    // #endif
}
 
onLaunch(() => {
    // 初始化系统信息
    appStore.initSystemInfo()
    setKeepFun()
    if (!userStore.userInfo) {
        //不存在则跳转至登录页
        uni.reLaunch({
            url: '/pages/login/index',
        })
    }
})
</script>
 
<style lang="scss">
/* 每个页面公共css */
@import 'uview-plus/index.scss';
@import '@/static/styles/common.scss';
 
.TUICallKit-mobile {
    position: fixed;
    left: 0;
    top: 0;
    z-index: 9999;
}
 
page {
    background-image: url('https://wrj.shuixiongit.com/aiskyminio/cloud-bucket/ztzf_app_assets/images/user/bg.png');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    background-attachment: fixed;
    // min-height: 10vh;
}
 
.uni-tabbar-border {
    background-color: #f6f6f6 !important;
}
 
.uni-page-head__title {
    font-family: Source Han Sans CN, Source Han Sans CN !important;
    font-weight: 400 !important;
    font-size: 17px !important;
    color: #222324 !important;
}
 
.uni-page-head {
    background: transparent !important;
}
</style>