ios - [RN][IOS]是否可以将 React Native RCTLinking 与 RNFirebase 动态链接结合使用?

标签 ios firebase react-native react-navigation react-native-firebase

我目前正在通过 RCTLinking API 处理 iOS 通用链接。出于某些原因,我需要使用 Firebase 动态链接,我想知道是否可以在我的应用程序中同时使用这两种链接。 我的问题是实现在:

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation

- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray * _Nullable))restorationHandler

这似乎不兼容,因为我需要同时返回 RCTLinkingManager 和 RNFirebaseLinks

有什么解决办法吗?

最佳答案

回答这个问题有点晚了,但目前提出的答案是行不通的。它将无法从 Firebase In-App Messaging 打开操作,因为从 RNFirebaseLinks 返回的 NO 将被 RCTLinkingManager 覆盖为 YES 用于恢复处理程序。

如果遇到这种情况,请尝试以下操作:

- (BOOL)application:(UIApplication *)application
        openURL:(NSURL *)url
        options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options {
   BOOL handledLink = [[RNFirebaseLinks instance] application:application openURL:url options:options];

  if (!handledLink) {
      handledLink = [RCTLinkingManager application:application openURL:url options:options];
  }
  return handledLink;
}

- (BOOL)application:(UIApplication *)application
continueUserActivity:(NSUserActivity *)userActivity
 restorationHandler:(void (^)(NSArray *))restorationHandler {
  
  BOOL handleRestore = [[RNFirebaseLinks instance] application:application continueUserActivity:userActivity restorationHandler:restorationHandler];
  
  if (!handleRestore) {
    handleRestore = [RCTLinkingManager application:application continueUserActivity:userActivity restorationHandler:restorationHandler];
  }
  return handleRestore;
}

我目前的设置和需要是 react-navigation v3 和 react-native-firebase v5

关于ios - [RN][IOS]是否可以将 React Native RCTLinking 与 RNFirebase 动态链接结合使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48239215/

相关文章:

objective-c - 使用核心图形通过触摸删除和取消删除 UIImageVIew 中的图像

ios - UItableView 选择问题

ios - Xcode 11.3.1 无法从路径中的包加载 Info.plist

在React Native中预加载图像

javascript - 使用模拟器时 react native firebase 崩溃

reactjs - react native typescript 屏幕测试返回测试套件运行失败。错误 react-native-permissions : NativeModule. RNPermissions 为空

iOS - 摆脱 UITableViewCell 选择背景颜色的变化

objective-c - 最佳实践? - 数组/字典作为核心数据实体属性

javascript - Firestore/Rxfire - 查询集合然后订阅子可观察数组

Firebase 模拟读取被拒绝