忘れられがちなSFSafariViewControllerについて
// サンプルコード
import SafariServices
func displayWebPage(url: String) {
if let url = URL(string: url) {
let vc = SFSafariViewController(url: url)
vc.modalPresentationStyle = .fullScreen
present(vc, animated: true, completion: nil)
}
}
- SFSafariViewControllerDelegate
//(1)
optional public func safariViewController(_ controller: SFSafariViewController, didCompleteInitialLoad didLoadSuccessfully: Bool)
//(2)
optional public func safariViewController(_ controller: SFSafariViewController, excludedActivityTypesFor URL: URL, title: String?) -> [UIActivityType]
//(3)
optional public func safariViewControllerDidFinish(_ controller: SFSafariViewController)
(1)は、最初に表示する画面の読み込み完了時に呼ばれます。
(2)は、アクションボタンタップ時に呼ばれます。 カスタムUIActivityを返却することもできます。 アクションボタンとは下の画像の右から二番目の四角から上矢印が出ているボタンです。
(3)は、左上の完了ボタンタップ時に呼ばれます。
SFSafariViewControllerですが実装も簡単ですし、特にWebViewにカスタム要素がないとか、Safariアプリに投げるとかするなら、こちらの方が使い勝手がいいと思います。