开发 Facebook 分享功能

96
sing_crystal
2017.04.26 17:02* 字数 471

原文链接
作者: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 翻译组翻译,已经获得作者翻译授权。

swift.gg译文