iT 邦幫忙鐵人賽 Day 13: 把有興趣的書分享出去吧!

透過分享的按鈕,將我們自定義的內容給發出去吧!

Jeremy Xue
4 min readOct 27, 2018

前言:

在我們在看一些充滿分享資訊的 App 中,例如:拍賣購物 App、圖書 App,或是什麼新聞 App,有時候我們希望我們能夠快速把這些資訊分享出去,而我們也不希望複製或是使用截圖的方式才能夠分享出去。因此,這次教學教大家如何使用原生的 UIActivityViewController ,開啟原生的分享視窗,並且客製化它的內容分享出去。

#UIActivityViewController

在這邊我們會使用 UIActivityViewController 來進行我們分享的動作,可以看到我們初始化時,會需要丟入兩個參數:

  • activityItems

可以看到這邊是一個 [Any],這邊我們可以決定我們想要分享哪些資訊出去,例如字串圖片等等。根據在此這個 Array 中的項目,系統會決定哪些項目要顯示、哪些則不用。

  • applicationActivities

這個參數的類型是 [UIActivity]?, 此參數可能為 nil,表示應用程序支持的自定義服務。你可以告訴系統你希望呈現「什麼類型的動作」。假使設定成 nil 的話,那麼所有類型的動作都將會出現在 UIActivityViewController 當中。

接著我們實例化它,並且我們把書籍名稱跟書籍的網址連結放到 activityItems ,並且把 applicationActivities 設為 nil:

let activityViewController = UIActivityViewController(activityItems: [book.name, book.link], applicationActivities: nil)

接著我們只需要 present 這個 activityViewController 即可,讓我們來測試一下:

這邊你會看到好像只能有幾個功能可以使用,複製跟儲存到檔案等等…。但是我們後面在 iPhone 上測試我們可以分享到各個支援的 App 上,例如 Line 、Facebook、Messager 等等,需要額外開啟。

然後我們這邊也可以為我們的 activityViewController 新增一個completionWithItemsHandler,來獲取他處理資料的結束後的結果,所以我們這邊分享按鈕的完整程式碼如下:

接著讓我們測試一下分享功能吧,這邊我們試著分享到 Line 上面:

後記:

那麼這次教學文章就到這邊結束了,希望大家了解到如何使用 UIActivityViewController 來製作分享的功能,是一個常常會碰到的功能,當然我們也可以客製化我們的 UIActivity 來製作更多更複雜的分享效果。

--

--

Jeremy Xue
Jeremy Xue

Written by Jeremy Xue

Hi, I’m Jeremy. [好想工作室 — iOS Developer]

No responses yet