捕获应用程序在特定时间内处于非活动状态



我正在努力查明用户是否在3分钟内没有点击、滚动或应用程序中的任何其他类型的事件;或者换句话说,用户在应用程序中没有交互,那么应用程序将使他退出。类似的银行申请。

我可以按如下方式添加GestureRecognizer,但我想了解UI上的所有活动,有什么方法可以处理这样的事情吗?

collectionView:上设置tap recognizer

viewDidLoad中添加以下内容:

let collectionViewTap = UITapGestureRecognizer(target: self, action: #selector(collectionViewTap))
collectionView.addGestureRecognizer(collectionViewTap)

声明当点击collectionView时将调用的此函数:

func collectionViewTap() {
print("collectionViewTap")
}

我可以实现如下的时间差,也可以看到时间差。

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
}

您可以在代码中添加一个Timer,并在任何需要的事件中重置它。如果计时器不重置-则timeIsOur将被执行,您可以随心所欲-(注销或记录一些内容(试着用这个https://www.zerotoappstore.com/how-to-detect-user-inactivity-swift.html它在我的生产应用程序中工作。

相关内容

最新更新