Facebook 通过 Safari 登录不使用已安装的应用程序
Posted
技术标签:
【中文标题】Facebook 通过 Safari 登录不使用已安装的应用程序【英文标题】:Facebook login through Safari not using installed App 【发布时间】:2015-10-10 05:38:37 【问题描述】:我已经使用 Facebook 开发者门户中的 Facebook SDK 并完成了所有编写的步骤,但在通过 Facebook 从我的应用程序登录期间,默认情况下它使用 Safari 进行登录过程。
为什么它不为此目的使用已安装的应用程序?
【问题讨论】:
看起来这是 ios9 的设计Facebook Login - iOS 9 - Without Safari 【参考方案1】:试试这个。
-(IBAction)CLK_ConnectWithFB:(id)sender
FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init];
// If the Facebook app is not installed on the device, falls back to \c FBSDKLoginBehaviorBrowser. This is the default behavior.
login.loginBehavior = FBSDKLoginBehaviorNative;
[login logInWithReadPermissions:@[@"email", @"user_friends",@"user_posts"] handler:^(FBSDKLoginManagerLoginResult *result, NSError *error)
if (error)
// Process error
NSLog(@"error is :%@",error);
else if (result.isCancelled)
// Handle cancellations
NSLog(@"error is :%@",error);
else
if ([result.grantedPermissions containsObject:@"email"])
[self fetchUserInfo];
[login logOut];
];
-(void)fetchUserInfo
if ([FBSDKAccessToken currentAccessToken])
[[[FBSDKGraphRequest alloc] initWithGraphpath:@"me" parameters:@@"fields": @"id,name,link,first_name, last_name, picture.type(large), email, birthday, bio ,location ,friends ,hometown ,posts, friendlists"]
startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error)
if (!error)
NSLog(@"result is :%@",result);
NSLog(@"friend is :%@",[[result valueForKey:@"friends"]objectForKey:@"data"]);
NSString *photostring=[[[result valueForKey:@"picture"] objectForKey:@"data"] valueForKey:@"url"];
photostring = [photostring stringByReplacingOccurrencesOfString:@"&" withString:@"%26"];
// [self Userlogin:[result valueForKey:@"email"] Username:[result valueForKey:@"name"] PhotoUrl:photostring LoginType:@"fb" Phoneno:@""];
];
【讨论】:
我已经使用了您的代码,但出现了另一个问题,我在用户/文档中导入了 Facebook SDK 设置路径搜索路径相同的参考在资源中添加框架但仍然显示“未找到 Sdk”请帮助 删除项目中的 facebook sdk 然后重新安装 我做了同样的事情,删除 Facebook SDK 的引用并再次使用二进制链接删除 sdk 仍然有相同的错误 你有最新的 Facebook SDK 吗? 新 sdk 将 facebook 端移除到 facebook 框架,所以不用担心。以上是关于Facebook 通过 Safari 登录不使用已安装的应用程序的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Facebook SDK 3.1 使用弹出视图登录 Facebook,而不是通过 safari? [关闭]
Facebook iOS SDK 使用 UIWebView 而不是 safari 登录(本机技巧/解决方案)
通过 iOS 9 登录 FB 时打开 Safari 网页视图