使用Facebook-iOS-SDK(4.0.1)result.isCancelled在使用浏览器时设置

Ank*_*ita 1 facebook facebook-graph-api ios8

我正在使用Facebook-iOS-SDK(4.0.1)使用自定义按钮登录.我正在实现以下代码

- (IBAction)fbButtonClicked:(UIButton *)sender {
FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init];
[login logInWithReadPermissions:@[@"email"] handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {
    if (error) {
        // Process error
    } else if (result.isCancelled) {
        // Handle cancellations
    } else {
        // If you ask for multiple permissions at once, you
        // should check if specific permissions missing
        if ([result.grantedPermissions containsObject:@"email"]) {
            // Do work
            if ([FBSDKAccessToken currentAccessToken]) {


                [[[FBSDKGraphRequest alloc] initWithGraphPath:@"me/friends" parameters:nil]
                 startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result2, NSError *error) {

                     if (!error) {
                         NSLog(@"fetched user:%@", result2);
                     }
                 }];
            }
        }
    }
}];
Run Code Online (Sandbox Code Playgroud)

}

如果我在设备上安装了Facebook应用程序,那么代码工作正常.当我没有安装Facebook应用程序时,Facebook将在浏览器中打开.在这里,'result.isCancelled'设置为'YES',我没有得到所需的结果.

Ank*_*ita 6

- (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)

在appDelegate.m中是必需的

  • 我仍然得到相同的结果 (2认同)