【问题标题】:How can I run a function on EVERY user action?如何在每个用户操作上运行一个函数?
【发布时间】:2018-09-12 19:31:45
【问题描述】:

我正在开发一个 React Native 信息亭应用程序,该应用程序将在安装在墙上的 Android 平板电脑上运行。我们想要实现一个“屏幕保护”类型的功能——如果用户在 30 秒内没有触摸屏幕,我们想要淡入一个漂亮的初始屏幕,然后在触摸时切换回主 UI屏幕。

我在重置“屏幕保护程序”倒计时时遇到问题。在网络上,我会使用应用根附近的 click 或 mousemove 处理程序来处理此问题,该处理程序会在用户执行任何操作时调度,例如...

let timeout = setTimeout(startScreenSaver, 30000);
document.body.addEventListener("click", () => {
  clearTimeout(timeout);
  setTimeout(startScreenSaver, 30000);
});

有没有办法在 React Native 中做类似的事情?

【问题讨论】:

  • 你如何为屏幕保护程序制作一个组件。激活屏幕保护程序后,您将导航到屏幕保护程序组件。该组件被包装在 中。然后你导航回 onPress 到你的主屏幕。

标签: javascript android reactjs react-native settimeout


【解决方案1】:

您可以在根视图组件上设置onTouchStart 属性,只要您触摸视图,事件就会发生。

例如,

onTouchStart = () => {
   clearTimeout(timeout);
   setTimeout(startScreenSaver, 30000);
}

render() {
  <View onTouchStart={this.onTouchStart}>
    ...
  </View>
}

【讨论】:

    猜你喜欢
    • 2017-04-18
    • 1970-01-01
    • 1970-01-01
    • 2014-10-15
    • 2014-02-08
    • 2015-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多