ios – 用于FBSDK和LinkingManager的AppDelegate.m

前端之家收集整理的这篇文章主要介绍了ios – 用于FBSDK和LinkingManager的AppDelegate.m前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
要使用FBSDK,我需要在app delegate中使用此代码
  1. - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url
  2. sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
  3.  
  4. BOOL handled = [[FBSDKApplicationDelegate sharedInstance] application:application
  5. openURL:url
  6. sourceApplication:sourceApplication
  7. annotation:annotation
  8. ];
  9. // Add any custom logic here.
  10. return handled;
  11. }

要使用LinkingManager,我需要在app delegate中使用此代码

  1. #import "RCTLinkingManager.h"
  2.  
  3. - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url
  4. sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
  5. {
  6. return [RCTLinkingManager application:application openURL:url
  7. sourceApplication:sourceApplication annotation:annotation];
  8. }

他们显然是重复的.我如何将两者结合起来使两个库都有效?
我不知道任何Objective-C

解决方法

当然,您只能在AppDelegate中实现此方法一次.

[[FBSDKApplicationDelegate …和[RCTLinkingManager …都返回BOOL.

您可以将两个片段放在同一个方法中.如果[RCTLinkingManager …和[[FBSDKApplicationDelegate …]返回YES,我建议返回YES.否则,返回NO.

它可能看起来像这样:

  1. - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url
  2. sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
  3.  
  4. BOOL handledFB = [[FBSDKApplicationDelegate sharedInstance] application:application
  5. openURL:url
  6. sourceApplication:sourceApplication
  7. annotation:annotation
  8. ];
  9.  
  10. BOOL handledRCT = [RCTLinkingManager application:application openURL:url sourceApplication:sourceApplication annotation:annotation];
  11.  
  12. return handledFB || handledRCT;
  13. }

我不能保证,你可以在同一个应用程序中使用FBSDKApplicationDelegate和RCTLinkingManager,因为我从未使用过这个.但是你的代码至少应该编译.

猜你在找的iOS相关文章