gpt4 book ai didi

objective-c - react native 深度链接与 Facebook SDK 冲突

转载 作者:太空狗 更新时间:2023-10-30 03:28:47 25 4
gpt4 key购买 nike

我在我的 react-native 应用程序中使用 Facebook SDK,现在我想添加对通用深度链接的支持。

我按照此处的说明修改了我的 appdelegate:https://developers.facebook.com/docs/ios/getting-started/

对于深度链接,我试图遵循这个:https://facebook.github.io/react-native/docs/linking.html

然而,他们似乎都使用相同的方法,我不确定如何调和:

````

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url
sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
return [RCTLinkingManager application:application openURL:url
sourceApplication:sourceApplication annotation:annotation];
}
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
return [[FBSDKApplicationDelegate sharedInstance] application:application
openURL:url
sourceApplication:sourceApplication
annotation:annotation];
}

````

请告诉我应该如何修改该方法以具有这两种功能。

谢谢

最佳答案

我是这样解决问题的:

- (BOOL)application:(UIApplication *)application
openURL:(NSURL *)url
options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options {

NSString *myUrl = url.absoluteString;
if ([myUrl containsString:@"PLACE_YOUR_FB_APP_ID_HERE"]) {
return [[FBSDKApplicationDelegate sharedInstance] application:application
openURL:url
sourceApplication:options[UIApplicationOpenURLOptionsSourceApplicationKey]
annotation:options[UIApplicationOpenURLOptionsAnnotationKey]
];
} else {
return [RCTLinkingManager application:application openURL:url options:options];
}
}

只需将 PLACE_YOUR_FB_APP_ID_HERE 替换为您的 info.plist 中的字符串。例如,在以下情况下它的 fb9999999999:

  <array>
<dict>
<key>CFBundleURLSchemes</key>
<array>
<string>fb9999999999</string>
</array>
</dict>
</array>

关于objective-c - react native 深度链接与 Facebook SDK 冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39280583/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com