我已经成功地将 react native 集成到现有项目中。在我的本机应用程序中,我有一个带有启动屏幕按钮的react-native
屏幕。
在Android
我可以借助BackAndroid.exitApp()
. 如何在 iOS 中实现相同的功能?
我已经成功地将 react native 集成到现有项目中。在我的本机应用程序中,我有一个带有启动屏幕按钮的react-native
屏幕。
在Android
我可以借助BackAndroid.exitApp()
. 如何在 iOS 中实现相同的功能?
当我在本机和 RN 之间进行流集成时,我只需在我的本机应用程序中添加一个挂钩并从 RN 调用它。所以在你的例子中,我会做类似的事情
onBackButtonPress() {
if (Platform.OS === 'ios') {
NativeModules.SomeController.backPressed()
}
else {
BackAndroid.exitApp()
}
}
然后backPressed()
在你的控制器中定义,这样逻辑就可以放在那里
RCT_EXPORT_METHOD(backPressed) {
// logic to go back e.g. pop view controller or dismiss modal
}
这可以通过关闭应用程序的顶部呈现视图控制器来完成。为了在您的 RCTBridge 实现中获得顶视图控制器,您可以使用此代码。
- (UIViewController *)currentTopViewController
{
UIViewController *topVC = [[[[UIApplication sharedApplication] delegate] window] rootViewController];
while (topVC.presentedViewController)
{
topVC = topVC.presentedViewController;
}
if ([topVC isKindOfClass:[UINavigationController class]]) {
return [(UINavigationController *)topVC topViewController];
}
return topVC;
}
然后你可以关闭这个视图控制器
[topViewController dismissViewControllerAnimated:YES completion:nil];
I developed a small npm package for achieving this. Find it here