顯示廣告
隱藏 ✕
看板 KnucklesNote
作者 Knuckles (站長 那克斯)
標題 [Xcode][Swift3] 在APP中用Safari開網頁 SFSafariViewController
時間 2017-04-18 Tue. 23:13:54


如果想在 App 中顯示網頁,一般都是用 UIWebView
但 WebView 沒有網址列,還要自己加上重新整理、回上一下這些瀏覽按鈕才行

在 iOS9 之後,可以使用 SFSafariViewController
不用在 storyboard 中加上新的 ViewController
只要點了某個按鈕後,就會開啟一個新的頁面來顯示網頁
而且介面就和 Safari 一樣,有網址列與瀏覽按鈕
點了左上角的 Done 就會回到點擊按鈕頁面

可以安裝這個 App 來測試看看 SFSafariViewController
WebView - WKWebView and UIWebView rendering on the App Store
[圖]
Read reviews, compare customer ratings, see screenshots, and learn more about WebView - WKWebView and UIWebView rendering. Download WebView - WKWebView and UIWebView rendering and enjoy it on your iPhone, iPad, and iPod touch.
 



開一個 Single View Application 的新專案,
在 View Controller 上拉一個 Button
使用 Assistant Editor 建立點擊按鈕會執行的 @IBAction
名稱輸入 showSFSafari

修改 ViewController.swift

在 import UIKit 下一行加上
import SafariServices

類別加上繼承 SFSafariViewControllerDelegate
class ViewController: UIViewController, SFSafariViewControllerDelegate {

修改剛剛加上的 @IBAction 為
     @IBAction func showSFSafari(_ sender: Any) {
         let url = URL(string: "https://disp.cc/m/")!
         if #available(iOS 9.0, *) { //確保是在 iOS9 之後的版本執行
             let safariVC = SFSafariViewController(url: url, entersReaderIfAvailable: false)
             safariVC.delegate = self
             self.present(safariVC, animated: true, completion: nil)
         } else { // iOS 8 以下的話跳出 App 使用 Safari 開啟
             UIApplication.shared.openURL(url)
         }
     }
開啟 SFSafariViewController 的程式不能寫在 ViewDidLoad() 裡
要使用點擊 Button 開啟才行

執行後,點擊按鈕 SFSafari
[圖]

 



參考
iOS 9: Getting Started With SFSafariViewController
AppCoda iOS 9 快速上手:搜尋 API 與 SFSafariViewController


--
※ 作者: Knuckles 時間: 2017-04-18 23:13:54
※ 編輯: Knuckles 時間: 2017-04-19 00:48:24
※ 看板: KnucklesNote 文章推薦值: 0 目前人氣: 0 累積人氣: 993 
分享網址: 複製 已複製
r)回覆 e)編輯 d)刪除 M)收藏 ^x)轉錄 同主題: =)首篇 [)上篇 ])下篇