Facebook SDK ios v4.4.0 didFinishLaunchingWithOptions

agy*_*agy 5 facebook objective-c ios handoff

我已根据Facebook指南在我的iOS应用程序中实现了Facebook SDK,并在我设置的AppDelegate中:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{
 // more code

  return [[FBSDKApplicationDelegate sharedInstance] application:application didFinishLaunchingWithOptions:launchOptions];
}
Run Code Online (Sandbox Code Playgroud)

现在,我已经在我的应用程序中实现了切换,并且- (BOOL) application:(UIApplication *)application willContinueUserActivityWithType:(NSString *)userActivityType当app从头开始时永远不会被调用,因为FBSDKApplicationDelegate sharedInstance返回false.

所以我的问题:如果我没有返回结果,是否有任何副作用[FBSDKApplicationDelegate sharedInstance]application:didFinishLaunchingWithOptions,我返回我的自定义结果?例如:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{
 // more code

  [[FBSDKApplicationDelegate sharedInstance] application:application didFinishLaunchingWithOptions:launchOptions];
  return YES;
}
Run Code Online (Sandbox Code Playgroud)

Vin*_*ary 3

简短回答:否。


[FBSDKApplicationDelegate application: didFinishLaunchingWithOptions:][UIApplicationDelegate application:didFinishLaunchingWithOptions:]应该从应用程序的 AppDelegate 方法 中调用 Facebook SDK 的正确使用方法 。

YES如果该 url 用于 Facebook SDK,则此方法返回,NO否则返回。


在最新的Facebook 入门文档中他们提到了这一点

要对 Facebook 登录或 Facebook 对话框(或任何需要切换到本机 Facebook 应用程序或 Safari 的操作)的结果进行后处理,您需要将您AppDelegateFBSDKApplicationDelegate. 在您的 AppDelegate.m 添加:

//  AppDelegate.m
#import <FBSDKCoreKit/FBSDKCoreKit.h>

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
  [[FBSDKApplicationDelegate sharedInstance] application:application
    didFinishLaunchingWithOptions:launchOptions];
  return YES;
}

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
  return [[FBSDKApplicationDelegate sharedInstance] application:application
    openURL:url
    sourceApplication:sourceApplication
    annotation:annotation
  ];
}
Run Code Online (Sandbox Code Playgroud)