面临以下问题:需要在 IOS 7 中执行 Facebook 登录。模拟器上一切正常,但在安装了 native 应用程序的设备上运行时, session 不允许执行登录。
使用代码创建 session :
checarLogin 方法的工作原理如下:
我通过 Google 搜索找到了它,并发现控制 Facebook 应用程序权限的设备设置在这两种情况下的工作方式不同:
模拟器授予权限,没有任何问题:
下面的图片也是从模拟器中获取的,但只是为了说明设备的方式 默认工作:
所以问题是:在安装了 native 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
}
}];
关于ios - IOS 中的 Facebook 登录可以在模拟器上使用,但不能在安装了 native 应用程序的设备上使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21632043/