我正在使用facebook登录测试应用。我做了一个按钮,当我点击它时,Facebook页面出现,在密码之后它就消失了。问题是永远不会调用来自[PFFacebookUtils loginWithPermissions]的块。这样我就无法预知我的segue。
我认为我拥有Parse和Facebook上的所有配置。所有类都在PrefixHeader中导入
Appdelegate方法已使用developer.facebook.com文档中的信息进行了更新。
PrefixHeader
的AppDelegate
我的Root View控制器类
答案 0 :(得分:7)
经过很长时间我才明白了!
我不知道为什么,但我需要将AppDelegate代码更改为
- (BOOL)application:(UIApplication *)application
openURL:(NSURL *)url
sourceApplication:(NSString *)sourceApplication
annotation:(id)annotation {
// attempt to extract a token from the url
return [FBAppCall handleOpenURL:url sourceApplication:sourceApplication withSession:[PFFacebookUtils session]];
}
并且现在没有调用块,因为我添加了“withSession:[PFFacebookUtils session]”。
我不知道为什么我必须这样做,因为在Facebook指南中它不是写的。 如果有人能解释我,我会很感激。
答案 1 :(得分:2)
对于那些坚持使用Swift 1.x的人,这解决了我的问题...当前的parse-ios-fb指南说要使用
func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject?) -> Bool {
println("open URL appdelgate callback")
return FBSDKApplicationDelegate.sharedInstance().application(application,
openURL: url,
sourceApplication: sourceApplication,
annotation: annotation)
}
但正在做
func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject?) -> Bool {
return FBAppCall.handleOpenURL(url, sourceApplication: sourceApplication, withSession:PFFacebookUtils.session())
}
的工作原理。 Swift 1.2,Parse / ParseFacebookUtils 1.8.5,Facebook 4.3