如何解决捕获特定时间的应用程序不活动
我试图找出用户是否在3分钟内没有单击或滚动应用程序中的任何其他类型的事件;或换句话说,用户在应用程序中不具有交互性,则应用程序会将其注销。类似的银行申请。
我可以如下添加GestureRecognizer
,但是我想赶上UI上的所有活动,有没有办法处理类似的事情?
在tap recognizer
上设置collectionView
:
let collectionViewTap = UITapGestureRecognizer(target: self,action: #selector(collectionViewTap))
collectionView.addGestureRecognizer(collectionViewTap)
声明此函数,在点击collectionView
时将调用该函数:
func collectionViewTap() {
print("collectionViewTap")
}
我可以如下实现时差,以查看timeDifference。
func isUserrequiredToLogin(){
let lastActivityDateAndTime = UserDefaults.standard.object(forKey: "lastActivityDateAndTime") as! Date
let currentDate = Date()
let minutes = currentDate.minutes(from: lastActivityDateAndTime)
print(minutes)
}
解决方法
var timer: Timer?
func resetTimer() {
timer?.invalidate()
timer = Timer.scheduledTimer(timeInterval: 10.0,target: self,selector: #selector(timeIsOur),userInfo: nil,repeats: false)
}
@objc func timeIsOur() {
//logout
//log something
//alerts
}
您可以在代码中添加一个计时器,并在需要时将其重置。如果不重置计时器-则将执行timeIsOur,然后您可以做任何事情-(登出或记录一些内容) 尝试使用此https://www.zerotoappstore.com/how-to-detect-user-inactivity-swift.html可以在我的生产应用中使用。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。