使用Swift SDK处理Facebook登录的开放网址

时间:2016-10-24 19:02:41

标签: ios swift facebook

我正在使用新的Facebook Swift SDK而不是Objective C SDK。

以前,必须实施openURL中的AppDelegate.swift。但是,Facebook的Swift教程并没有涉及这一部分。

记录以下内容:

Implementation of application:openURL:sourceApplication:annotation: not found. Please add the handler into your App Delegate. Class: Shoppie.AppDelegate

但我的实施不起作用:

func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
        return GIDSignIn.sharedInstance().handle(url as URL!, sourceApplication: options[UIApplicationOpenURLOptionsKey.sourceApplication] as! String, annotation: nil)
    if (url.scheme?.hasPrefix("fb"))! {
        return FBSDKApplicationDelegate.sharedInstance().application(app, open: url, sourceApplication: options[UIApplicationOpenURLOptionsKey.sourceApplication] as! String!, annotation: nil)
    } else {
        return GIDSignIn.sharedInstance().handle(url as URL!, sourceApplication: options[UIApplicationOpenURLOptionsKey.sourceApplication] as! String, annotation: nil)
    }
    return false
}

由于:

Use of unresolved identifier 'FBSDKApplicationDelegate'

我通过在Podfile添加以下内容来安装Swift SDK:

pod 'FacebookCore'
pod 'FacebookLogin'
pod 'FacebookShare'

正在运行pod install

我找不到更新的代码应该是什么。

2 个答案:

答案 0 :(得分:7)

他们的文档有点缺乏,但他们确实在他们的github存储库中提供了一个很好的示例应用程序。见https://github.com/facebook/facebook-sdk-swift/blob/master/Samples/Catalog/Sources/AppDelegate.swift

这是我用来将SDK插入我的应用程序的代码(Swift 3):

 m = [[1, 2],
      [3, 4]]

仅供参考 - facebook swift库基本上只是其标准objective-c库的包装。

答案 1 :(得分:0)

我通过在Use of unresolved identifier 'FBSDKApplicationDelegate'文件中添加以下内容来解决Bridging-Header.h问题:

#import <FBSDKCoreKit/FBSDKCoreKit.h>
#import <FBSDKLoginKit/FBSDKLoginKit.h>

进行这些更改后,登录工作正常。

似乎Facebook Swift SDK仍处于测试阶段,教程尚未更新。 (Github Issue