美文网首页
开发 Facebook 分享功能

开发 Facebook 分享功能

作者: sing_crystal | 来源:发表于2017-04-26 17:02 被阅读431次

    原文链接
    作者:Arthur Knopper
    原文日期:2017/04/26
    译者:Crystal Sun

    借助 Social Framework,可以给自己的 App 添加社交网络分享的功能。在本节教程中,将使用 social framework 往 Facebook 上发布一条状态。本节教程使用的是 Xcode 8.3 和 iOS 10.3。

    设置工程

    打开 Xcode,创建一个 Single View Application。

    Product Name 使用 IOS10FacebookTutorial,填写自己的 Organization Name 和 Organization Identifier,Language 一栏选择 Swift,Devices 一栏选择 iPhone。

    设置 Storyboard

    从 Object-Library(控件库)中拖拽一个 Button 到主界面,将其标题改为 “Post to Facebook”。选中该控件,点击 Storyboard 右下角 Auto Layout 的 Align 按钮,选择 “Horizontally in Container”,点击 “Add 1 Constraint”。

    仍然选中该 Button 控件,点击 Auto Layout 的 Pin 按钮,选中上面的线,点击 “Add 1 Constraint”。

    Storyboard 看起来应如下图所示:

    点击 Assistant Editor,确保 ViewController.swift 文件可见。Control 拖拽或右键点击拖拽,将 Button 控件拖拽到 ViewController 类下面,创建下列 Action。

    打开 ViewController.swift 文件,引入 social framework。

    import Social
    

    接下来实现 postToFacebook 方法:

    @IBAction func postToFacebook(_ sender: Any) {
        // 1
        if SLComposeViewController.isAvailable(forServiceType: SLServiceTypeFacebook) {
            // 2
            if let controller = SLComposeViewController(forServiceType: SLServiceTypeFacebook) {
                // 3
                controller.setInitialText("Testing Posting to Facebook")
                // 4
                self.present(controller, animated:true, completion:nil)
            }
        }
        else {
            // 3
            print("no Facebook account found on device")
        }
    }
    
    1. 检查设备上的 Facebook 账户是否可用。
    2. 创建 SLComposeViewController 对象,该对象用于显示 Facebook 状态发布界面和全部的功能。
    3. 设置发布 Facebook 状态的默认文案。
    4. 显示该 controller。
    5. 如果 Facebook 账户尚未设置,在控制台(console)里显示提示信息。

    运行程序,开始往 Facebook 上发状态,确保模拟器的 Facebook 账户已经设置好了,在模拟器的菜单栏 Settings -> Facebook 里可以设置。

    可以从 github 上下载 IOS10FacebookTutorial 教程的源代码。

    本文由 SwiftGG 翻译组翻译,已经获得作者翻译授权。

    相关文章

      网友评论

          本文标题:开发 Facebook 分享功能

          本文链接:https://www.haomeiwen.com/subject/uyjdattx.html