第 23 章
WKWebView 與 SFSafariViewController

I've got a theory that if you give 100% all of the time, somehow things will work out in the end.

- Larry Bird

在App 中顯示網頁內容是很常見的事。從 iOS 9 開始,它提供了三種選項讓開發者顯示網頁內容:

  • Mobile Safari - iOS SDK提供了API,可以在行動版的 Safari 瀏覽器來開啟指定的 URL。在這種情況下,你的使用者只是暫時離開應用程式然後切換至 Safari。
  • UIWebView / WKWebView - 在 iOS 9 釋出之前,這是將網頁內容嵌入你的 App 最方便的方式。你可以將UIWebView 想成一個精簡版的 Safari,它負責載入一個 URL 請求來顯示網頁內容。WKWebView 是在 iOS 8 時所導入,屬於 UIWebView 的改良版, 它具備 Nitro JavaScript 引擎並提供更多其他的功能。當你需要顯示一個特定的網頁,WKWebView 是最好的選擇。
  • SFSafariViewController - 這是在 iOS 9所導入的新控制器。雖然 UIWebView 可以讓你在 App 中嵌入網頁內容,你必須建立一個自訂的網頁視圖才能提供完整的網頁瀏覽功能。舉例來說,UIWebView 沒有內建Back/Forward 按鈕,以讓使用者可以返回以及往前瀏覽歷史記錄。為了提供這個功能,你必須使用 UIWebView 來開發一個自訂的網頁瀏覽器。在 iOS 9 中,Apple 導入 SFSafariViewController 來省下開發者自己建立瀏覽器的工夫。透過 SFSafariViewController 的使用,你的使用者可以使用所有 Mobile Safari 的功能,且不需要離開你的 App。
圖 23-1. About 畫面
圖 23-1. About 畫面

在本章中,我會介紹所有的功能,並教導你如何使用它們來顯示網頁內容。我將不討論 UIWebView 因為它已經不再使用,雖然這個類別還是可以在 iOS SDK 中取得,但是還是應該改用 WKWebView

我們在前面的內容中建立了About.storyboard。不過我們還沒有提供任何的實作。以圖 23-1 來說, 這是一個我們準備要建立的 About 畫面,下列是每一列所要做的動作。

  • Rate us on App Store(在 App Store 評價) - 選取後,我們會在 Mobile Safari載入一個特定的 iTunes 連結。使用者會離開目前的App 並切換至 App Store。
  • Tell us your feedback(提供意見回饋) -選取後,我們會使用 WKWebView 載入一個 Contact Us 網頁
  • Twitter / Facebook / Pinterest - 每一個項目都有其相對應社群設定檔的連結。我們將會使用SFSafariViewController 來載入這些連結。

聽起來很有趣對吧?我們開始吧。

本文摘自《iOS 13 App程式設計實戰心法》一書,博碩授權轉載。如果你想更深入學習Swift程式設計和下載完整程式碼,你可以從AppCoda網站購買完整電子版。

results matching ""

    No results matching ""