iOS開發:SFSafariViewController的用法

SFSafariViewController(API_AVAILABLE(iOS(9.0)))是iOS_9.0之后推出的一種視圖控制器,繼承與UIViewController,用于在為瀏覽web提供可見標準接口的對象,可以打開Safari相似瀏覽效果的網頁。通俗的理解就是器功能類似于 WKWebView加載web頁,不用跳轉到Safari,就有了Safari瀏覽器完全功能。

SFSafariViewController視圖控制器包括Safari的一些功能,如閱讀器、自動填充、欺詐網站檢測和內容攔截。在iOS9和iOS10中,它與Safari共享cookie和其他網站數據。用戶與SFSafariViewController的活動和交互對您的應用程序不可見,應用程序無法訪問自動填充數據、瀏覽歷史記錄或網站數據。您不需要在應用程序和Safari之間保護數據。如果你想在iOS 11或更高版本的應用程序和Safari之間共享數據,那么用戶只需登錄一次就可以了,使用SFAuthenticationSession。

需要注意:

根據App Store Review Guidelines(App Store審查指南),這個視圖控制器必須用于向用戶可見地呈現信息;控制器不得被其他視圖或圖層隱藏或遮擋。此外,未經用戶知情和同意,應用程序不得使用SFSafariViewController跟蹤用戶。

如何選擇用哪個控件展示web:

如果你的應用程序允許用戶在互聯網上任何地方查看web網站,使用SFSafariViewController類。如果您的應用程序定制、交互或控制web內容的顯示,請使用WKWebView類。iOS_8.0之后蘋果推出WKWebView來代替UIWebView,所以UIWebView不在討論。

左上角按鈕的樣式左上角按鈕的樣式

左上角按鈕的樣式 SFSafariViewControllerDismissButtonStyle;

特別注意,這個枚舉是在iOS_11.0之后的方法


初始化并傳入URL
初始化的例子

初始化SFSafariViewController。


控制器初始化時的配置

控制器初始化時的配置,這個屬性包括倆個:

BOOL? entersReaderIfAvailable :是否使用閱讀器功能。如想要顯示的是 Wikipedia 的內容,要使用的是閱讀器( Reader )的功能。閱讀器是 Safari 中一個很方便的功能,可以從網站截取并顯示重要的內容。

BOOL? barCollapsingEnabled:當用戶滾動web內容時,指示SFSafariViewController是否應啟用導航欄的折疊和底部工具欄的隱藏,默認是YES。


上部和下部bar的顏色

SFSafariViewController上部和底部bar的背景顏色。


進度條的顏色

導航條下面進度條的顏色


導航欄關閉按鈕的樣式

在導航欄中用來關閉SFSafariViewController的解散按鈕的樣式。默認值是 SFSafariViewControllerDismissButtonStyleDone。有三種,以枚舉的形式羅列出來,具體請看本文第一張圖片所示。


SFSafariViewControllerDelegate

展示web頁,下面倆個方法基本就夠用了。

當用戶單擊導航欄左邊的按鈕調用委托回調,在這個調用中,視圖控制器被銷毀。

當用戶單擊導航欄左邊的按鈕調用委托回調,在這個調用中,視圖控制器被銷毀。


當SFSafariViewController完成加載傳遞給初始化器的URL時,將調用此方法

當SFSafariViewController完成加載傳遞給初始化器的URL時,將調用此方法。它不會在相同的SFSafariViewController實例中調用任何后續頁面加載。


注意:以上屬于原創,若有雷同純屬巧合;如有錯誤,請多多指正,轉載請標明來源和作者。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。