0

在我的应用程序中,我想session timeout在一段时间后执行inactivity. 但是,如果用户与应用程序交互,则timer需要重置。

主要问题是这应该在应用程序的一部分而不是整个应用程序中实现,因此是否有任何替代方法UIApplication可以检测user interaction.

我确实有那些特定控制器的基类,但touch or gesture delegates没有在基类中被调用。

如何检测少数控制器的用户交互。

提前感谢您的任何想法和帮助。

4

1 回答 1

0

于是,我想出了一个办法。在我的基类中,我之前在视图上设置了点击手势。

    let tap =  UITapGestureRecognizer(target: self, action: nil)
    tap.delegate = self
    tap.cancelsTouchesInView = false
    view.addGestureRecognizer(tap)

所以view.addGestureRecognizer(tap)我现在不是在添加手势window

    if let window = UIApplication.shared.keyWindow {
        window.addGestureRecognizer(tap)
    }

我实施了UIGestureRecognizerDelegate

func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldReceive touch: UITouch) -> Bool { 
 // My Code here
   return true
}

所以,现在我的基类能够检测到任何点击并调用delegate.

请注意:添加它delegate/ gesture不会影响我的子类的任何其他视图上的触摸或手势。

于 2021-09-13T12:11:00.747 回答