提交 1a005424 作者: 方治民

feat: 添加隐藏式退出 Hook 实现

上级 3b4b5bf8
/**
* 隐藏式退出应用 Hook
* @param max 最大点击次数
* @returns 退出函数
*/
export function useConcealedExit(max = 10) {
const maxTapCount = max
const count = ref(0)
let loop: NodeJS.Timer
// 隐藏退出功能计数
function exit() {
// #ifdef APP-PLUS
count.value++
// #endif
}
// 退出或过期时清理计数
function reset() {
count.value = 0
if (loop) {
clearTimeout(loop)
loop = null
}
}
// #ifdef APP-PLUS
watch(
() => count.value,
() => {
if (count.value >= maxTapCount - 3) {
Message.toast(`再点击 ${maxTapCount - count.value} 次将退出应用`)
// 达到最大点击次数时退出
if (count.value >= maxTapCount) {
reset()
plus.runtime.quit()
}
}
if (!loop && count.value > 0) {
// 15 秒内未点击则清空计数
loop = setTimeout(reset, 15 * 1000)
}
},
)
// #endif
return {
exit,
reset,
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论