![](/img/trans.png)
[英]Facebook native login is not opening facebook app even if it's installed in device?
[英]Facebook login in IOS works on emulator but not on device with native app installed
面临以下问题:需要在IOS 7中执行Facebook登录。该操作在模拟器上正常进行,但是在安装了本机应用程序的设备上运行时,会话不授予执行登录的权限。
使用代码创建会话:
checarLogin方法的工作方式如下:
我已经用谷歌搜索找到它,并发现控制Facebook应用程序权限的设备设置在两种情况下的工作方式不同:
仿真器给予权限没有问题:
下图也来自仿真器,但仅用于说明设备默认的工作方式:
所以问题是:在安装了本地Facebook应用程序的真实设备中运行时,还有其他方法可以处理登录,并使其无需更改iPhone设置即可接受权限?
这是我在应用程序中使用的,您必须允许登录UI。
- (BOOL)openSessionWithAllowLoginUI:(BOOL)allowLoginUI completionHandler:(FBSessionStateHandler)handler {
// We pass this permissions array into our request.
// I only request email, but there are many more options.
//
NSArray *permissions = @[@"email", @"basic_info"];
return [FBSession
openActiveSessionWithReadPermissions:permissions
allowLoginUI:allowLoginUI
completionHandler:^(FBSession *session,
FBSessionState state,
NSError *error) {
if (handler)
handler(session, state, error);
}];
}
这就是你使用它的方式
[self openSessionWithAllowLoginUI:YES completionHandler:^(FBSession *session, FBSessionState status, NSError *error) {
if (!error && status == FBSessionStateOpen) {
NSString *token = session.accessTokenData.accessToken;
// You're logged in!
} else {
// Something wrong happened
}
}];
我遇到了类似的问题,这对我有用:
https://stackoverflow.com/a/12069251/2407717
一位同事更改了我们的某些项目设置,包括Bundle Identifier ,因此它不再与Facebook上的iOS Bundle ID相匹配。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.