我目前正在通过 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/