我已经升级到ParseFacebookUtilsV4,并且我已经这样更新了我的登录代码:
[PFFacebookUtils logInInBackgroundWithReadPermissions:FACEBOOK_READ_PERMISSIONS block:^(PFUser *user, NSError *error) {
...
}];然而,现在我的应用程序切换到Facebook应用程序片刻,然后又回来了。它使用原生的Facebook应用程序登录,而在设置中仍然有一个有效的iOS Facebook帐户。如何让PFFacebookUtils v4在系统Facebook账号可用时使用,并仅在系统账号不可用时才回退到Facebook app?
发布于 2015-08-25 12:23:15
从ParseFacebookUtilsV4的头文件
PFFacebookUtils.h
..。
/*!@abstract
FBSDKLoginManager提供了配置登录行为、默认受众和管理Facebook访问令牌的方法。
@返回PFFacebookUtils使用的FBSDKLoginManager实例。*/
因此,假设PFFacebookutils使用了"FBSDKLoginManager“声明,让我们看看这是否有效。实际上,让我们将默认值设置为“系统帐户”,...代码如下:
[[PFFacebookUtils facebookLoginManager] setLoginBehavior:FBSDKLoginBehaviorSystemAccount];
[PFFacebookUtils logInInBackgroundWithReadPermissions:FACEBOOK_READ_PERMISSIONS block:^(PFUser *user, NSError *error) {
}]; 是的,这段代码可以编译,这段代码可以工作,只要确保你在调用登录工具之前声明了登录行为,当你初始化代码库,解析,解析Facebook Utilities等时,最好是在你的AppDelegate中。
事实上,为了确保这对您有效,我刚刚下载了最新版本的PARSE iOS SDK,它具有相同的功能。这是你的选择,这是来自iOS的Facebook SDK,它为PFFacebookUtils提供了:
@typedef FBSDKLoginBehavior enum@ FBSDKLoginManager已传递给\c Facebook,以指示应如何尝试Facebook登录。
@discussion Login授权应用程序使用用户的Facebook帐户代表用户执行操作。通常,Facebook登录将依赖于应用程序外部维护的帐户,该帐户由原生Facebook应用程序、浏览器或设备本身维护。这避免了用户直接输入用户名和密码的需要,并为用户授权应用程序与Facebook交互提供了最安全和最低摩擦的方式。
\c FBSDKLoginBehavior枚举指定应尝试哪种登录方法。大多数应用程序将使用默认设置,即尝试通过Facebook应用程序登录,并在需要时回退到浏览器。
如果无法使用指定的行为完成登录,则将调用完成处理程序,并在\c FBSDKErrorDomain中显示错误,代码为\c FBSDKLoginUnknownErrorCode。*/
typedef NS_ENUM(NSUInteger, FBSDKLoginBehavior)
{
/*!
@abstract Attempts log in through the native Facebook app. If the Facebook app is
not installed on the device, falls back to \c FBSDKLoginBehaviorBrowser. This is the
default behavior.
*/
FBSDKLoginBehaviorNative = 0,
/*!
@abstract Attempts log in through the Safari browser
*/
FBSDKLoginBehaviorBrowser,
/*!
@abstract Attempts log in through the Facebook account currently signed in through Settings.
If no Facebook account is signed in, falls back to \c FBSDKLoginBehaviorNative.
*/
FBSDKLoginBehaviorSystemAccount,
/*!
@abstract Attemps log in through a modal \c UIWebView pop up
@note This behavior is only available to certain types of apps. Please check the Facebook
Platform Policy to verify your app meets the restrictions.
*/
FBSDKLoginBehaviorWeb,
};发布于 2015-08-25 04:30:58
根据SDK,打开Facebook应用程序是使用您的应用程序进行身份验证的首选方案。这种行为是由Facebook和他们的SDK定义的,而不是真正的解析问题。
除非你想添加一大堆自定义代码来直接与iOS系统帐户交互,否则你将不得不忍受应用程序打开并返回到你的应用程序。每个人都是这么做的.(我知道,答案有点差劲)
如果你想自己试一试,那就从
ACAccountType *facebookAccountType = [[[ACAccountStore alloc] init] accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierFacebook];发布于 2015-08-22 20:17:04
来自Github的Fork Parse库
进去吧,想改什么就改什么……
https://stackoverflow.com/questions/32033660
复制相似问题