Gus*_*nco 5 android android-activity react-native
我有一个 react-native-init 应用程序,它使用appState来检测应用程序何时进入后台以隐藏用户正在使用的屏幕(例如电子邮件列表),并在它前面放置一个图像直到用户再次调用应用程序前台并进行身份验证。
这是为了防止任何检查当前打开的应用程序的人看到用户在我的应用程序中检查的最后一个屏幕的样子,而是看到图像(如启动画面)。
这可以在 iOS 中轻松实现,因为 iOS 具有三个阶段:
因此,当应用程序变为inactive 时,组件状态中的标志会发生变化,并显示带有图像的组件而不是当前屏幕。
handleAppStateChange = (nextAppState) => {
if (nextAppState.match(/inactive|background/)) {
this.setState({ showSplashScreen: true })
}
if (this.state.appState.match(/background/) && nextAppState === 'active') {
this.setState({ showSplashScreen: false })
}
}
Run Code Online (Sandbox Code Playgroud)
但是,android 仅使用active 和 background appStates,因此当它进入后台时,该函数将使用background作为nextAppState调用,并且状态中的标志showSplashScreen更改为 true,但似乎由于应用程序已经处于后台,组件不会对其做出反应状态发生变化,当您检查打开的应用程序列表时,您仍然会看到上次使用的屏幕,该屏幕可能包含敏感数据。
有什么方法可以检测应用程序何时进入后台,以便在进入后台之前可以用图像替换当前屏幕?
| 归档时间: |
|
| 查看次数: |
2792 次 |
| 最近记录: |