一段时间后锁定 React Native 应用程序
Locking a React Native App After an Amount of Time
我正在开发一个 React Native 应用程序,该应用程序在登录时和每次应用程序启动时(不再在后台活动)显示密码屏幕。每次用户在后台离开应用程序超过 5 分钟时,我都想显示此密码屏幕。此应用程序将部署在 Android 和 iOS。
查看搜索结果显示了可能提供此功能的第三方库的选项。有没有一种不需要借助第三方工具就能做到这一点的方法?
您可以尝试实现 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);
您可以使用 PanResponder
从本机导入 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>
我正在开发一个 React Native 应用程序,该应用程序在登录时和每次应用程序启动时(不再在后台活动)显示密码屏幕。每次用户在后台离开应用程序超过 5 分钟时,我都想显示此密码屏幕。此应用程序将部署在 Android 和 iOS。
查看搜索结果显示了可能提供此功能的第三方库的选项。有没有一种不需要借助第三方工具就能做到这一点的方法?
您可以尝试实现 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);
您可以使用 PanResponder
从本机导入 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>