这里是问题:我有一个React-Native / Redux应用程序。我需要确保在X分钟不使用应用程序后可以锁定屏幕(实际上是显示模式)(理论上有人可能一直在“打开”屏幕,所以我不能依靠屏幕自行关闭)。 / p>
我建议的解决方案:我想检测任何触摸事件何时发生。除了重置setTimeout
之外,我不想干扰他们或对此无所适从。但是我只想知道何时触摸屏幕。
显示模态本身不是问题,已经可以使用了。如果应用由于任何原因离开前台,我也可以显示模态。我只需要超时即可。
我已经尝试过使用可包装整个UI的TouchableWthoutFeedback,并且sorta可以工作,但是当Touchable在组件树的下方并处理该事件时,它不会接收任何事件。但是我也只使用了onPressIn
,但不确定是否可以根据需要使用它。我已经简要地看过PanResponder
,但这看起来比我可能需要的复杂得多?还不确定那个。
我愿意接受其他建议,但我能想到的唯一一件事是在应用程序中执行几乎所有其他操作(即使我尚未创建的其他操作),也向redux旗杆发送了一个调度,这似乎笨拙并且容易出错。
这可行吗?如果没有,我有什么选择?
答案 0 :(得分:0)
我找到了解决方案。这是在包含的View上添加一个onStartShouldSetResponderCapture
回调作为道具。我可以在此回调中返回false,但仍然注意到所有通过的触摸事件。 Capture
部分很重要,因为它使您可以在“真正的”可触摸对象接触事件之前对其进行访问。
然后,在回调中,我清除并重新创建计时器。