在应用最小化但仍处于活动状态之前,React Native会收到通知

时间:2018-01-26 14:34:17

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

我需要一种方法来隐藏反应原生应用中的敏感信息,这样如果您最小化应用并让手机解锁,多任务处理视图中应用的快照将会模糊,导航堆栈将切换回登录屏幕当应用程序再次激活时。

即使只是在应用变为非活动状态之前显示“登录”屏幕 - >背景就足够了,但似乎在状态已从活动状态更改后调用AppState的{​​{1}}事件处于非活动状态,此时已创建快照,并在应用程序恢复后发生屏幕更改。这样,具有敏感数据的屏幕在多任务处理中可见。

我知道如何在原生iOS环境中轻松实现这一点,但似乎在React Native中并不是那么简单。

1 个答案:

答案 0 :(得分:1)

你无法避免使用本机代码。

iOS中的

AppDelegate.m文件中,这些2:

1

- (void)applicationDidEnterBackground:(UIApplication *)application
{
    // Your application can present a full screen modal view controller to
    // cover its contents when it moves into the background. If your
    // application requires a password unlock when it retuns to the
    // foreground, present your lock screen or authentication view controller here.

    UIViewController *blankViewController = [UIViewController new];
    blankViewController.view.backgroundColor = [UIColor blackColor];

    // Pass NO for the animated parameter. Any animation will not complete
    // before the snapshot is taken.
    [self.window.rootViewController presentViewController:blankViewController animated:NO completion:NULL];
}

而且这个 2。

- (void)applicationWillEnterForeground:(UIApplication *)application
{
    // This should be omitted if your application presented a lock screen
    // in -applicationDidEnterBackground:
    [self.window.rootViewController dismissViewControllerAnimated:NO completion:NO];
}

来源: https://developer.apple.com/library/content/qa/qa1838/_index.html

也发现了这个: https://github.com/kayla-tech/react-native-privacy-snapshot