3***@qq.com
3***@qq.com
  • 发布:2023-06-29 15:13
  • 更新:2023-06-29 16:36
  • 阅读:2167

uniapp如何全局监听用户点击、触摸、滑动屏幕等行为?

分类:uni-app

uniapp没有document,如何全局监听用户点击、触摸、滑动屏幕等行为,需求是用户30分钟未操作app,强制退出,如果有操作,就顺延,目前想在App.vue文件中监听,但是找不到合适的监听方法

补充:需求没有说明白,用户30分钟内未操作app,强制退出;30分钟内任意时间有操作app,就往后顺延30分钟如果未操作就强制退出,就和我们用的中国银行app一样,5分钟未操作直接退出。

2023-06-29 15:13 负责人:无 分享
已邀请:
Diligent_UI

Diligent_UI - 【插件开发】【专治疑难杂症】【多款插件已上架:https://ext.dcloud.net.cn/publisher?id=193663(微信搜索飘逸科技UI小程序直接体验)】【骗子请绕道】问题咨询请加QQ群:120594820,代表作灵感实用工具小程序

需求不合理啊

爱豆豆

爱豆豆 - 办法总比困难多

30分钟没操作 手机都熄屏了
难道你还要从后台监听?

秋凡

秋凡 - 全职接单 高效率、高质量 uniapp项目开发 服务器部署-运维 欢迎咨询 Q:377313813 vx:ran1ever

可以全局在页面混入一个 onshow 写一个方法 每次进入onshow 重置时间 这样可以基于页面跳转来检测用户操作

h***@hunankuai.com

h***@hunankuai.com

在uni-app中,可以通过监听App的生命周期函数和页面的生命周期函数来实现全局监听用户操作的需求。

首先,在App.vue文件中,可以监听App的生命周期函数onShow和onHide,分别表示App进入前台和进入后台的事件。可以在onShow中记录用户最后一次操作的时间,并在onHide中清除计时器。

复制export default {
onShow() {
// 记录用户最后一次操作的时间
uni.setStorageSync('lastActiveTime', Date.now());
},
onHide() {
// 清除计时器
clearInterval(this.timer);
}
}
然后,在需要全局监听用户操作的页面中,可以监听页面的生命周期函数onLoad和onUnload,分别表示页面加载和页面卸载的事件。可以在onLoad中启动计时器,并在onUnload中清除计时器。

复制export default {
onLoad() {
// 启动计时器
this.timer = setInterval(() => {
// 获取用户最后一次操作的时间
const lastActiveTime = uni.getStorageSync('lastActiveTime');
// 判断是否超过30分钟
if (Date.now() - lastActiveTime > 30 60 1000) {
// 超过30分钟,执行强制退出操作
uni.showToast({
title: '强制退出',
icon: 'none'
});
// 清除计时器
clearInterval(this.timer);
// 执行退出操作
// ...
}
}, 1000);
},
onUnload() {
// 清除计时器
clearInterval(this.timer);
}
}
通过以上方式,可以在App.vue文件中监听App的生命周期函数,记录用户最后一次操作的时间;在需要全局监听用户操作的页面中,监听页面的生命周期函数,启动计时器并判断是否超过30分钟未操作。

  • 民宝的蟑螂恶霸

    如果 我一直停留在这个页面 滚动 不跳转页面 你这个不行了

    2024-07-24 18:05

要回复问题请先登录注册