一段时间后锁定React Native应用程序

时间:2019-12-10 12:41:23

标签: react-native react-native-android react-native-ios

我正在开发一个React Native应用程序,该应用程序在登录时和每次启动该应用程序时都会显示一个密码屏幕(不再在后台处于活动状态)。每当用户在后台离开应用程序超过5分钟时,我都希望显示此密码屏幕。该应用程序将部署在Android和iOS上。

查看搜索结果会向我显示可能提供此功能的第三方库的选项。有没有办法无需借助第三方工具?

2 个答案:

答案 0 :(得分:1)

您可以尝试实施AppState更改事件

AppState.addEventListener('change', onAppStateChange);

let lastTimestamp = 0;
function onAppStateChange(state) {
  if (state === 'background') {
    // Store current time
    lastTimestamp = Date.now();
  } else if (state === 'active') {
    if (Date.now - lastTimestamp > 5 * 60 * 1000) {
       // Show you pin code screen
    }
  }
}

// Remember to remove listener when you don't need it
AppState.removeEventListener('change', onAppStateChange);

答案 1 :(得分:1)

您可以使用PanResponder 从react-native导入PanResponder 在构造函数中添加以下内容

this. panResponser = PanResponder.create({
        onStartShouldSetPanResponderCapture: () => {
            let now = new Date().getTime();
            if (now < your_desired_expiry_time) {
                let newTime = new Date().getTime() + your_logout_time_in_milliseconds;
                //now you can update your expiry time with newTime
            }
            else {
                //go back to login
            }
        }
    })

用法

<View {...this.panResponser.panHandlers}>

   ...your other views
</View>