[Swift3]SafariでWebページを開く方法

こんにちは、プログラマーの@Yuuです。
気付けばもう7月。
約5ヶ月もブログを更新していない怠けっぷり、、、アカンですね。
久々の更新はSwiftネタです。
この記事では、iPhoneアプリからSafariを起動し特定のURLを開く方法をご紹介します。
スポンサーリンク
URLからSafariを開く
以下のコードが「ボタンが押されたら、SafariでgoogleのWebページを開く」コードになります。
1 2 3 4 5 6 |
@IBAction func pushOpenButton(_ sender: UIButton) { let url = URL(string: "https://www.google.co.jp/")! if UIApplication.shared.canOpenURL(url) { UIApplication.shared.open(url) } } |
3行目で指定されたURLが開けるか確認し、
ページを開けるようであれば4行目でURLをopenします。
4行目のopenメソッドは
1 2 |
@available(iOS 10.0, *) open func open(_ url: URL, options: [String : Any] = [:], completionHandler completion: ((Bool) -> Swift.Void)? = nil) |
このように定義されているため、
ページを開くのに成功した後に何かしら処理を実行する事も出来ます。
1 2 3 4 5 6 7 8 |
let url = URL(string: "https://www.google.co.jp/")! if UIApplication.shared.canOpenURL(url) { UIApplication.shared.open(url, options: [:], completionHandler: {(isOpenSuccess) in if isOpenSuccess { print("\(url) を正常に開けました") //https://www.google.co.jp/ を正常に開けました } }) } |
こんな感じで。
しかし、2番目の引数 options
は何をやっているかイマイチ分からない。
パラメータを渡せるとかそういう事なんだろうか...?
あとがき
このようにSafariでWebページを開くのはかなり簡単!
注意点としては、
iOS 9から追加された「ATS(App Transport Security)」というセキュリティ関係の機能があり、
「https://」に対応していない「http://」のページを開く場合は、info.plistに「http://」のページを開けるようにする設定を追記しなければいけません。
そのような場合にはクラスメソッドさんの以下の記事を参照してもらえれば幸せになれます。
[iOS] ATS対応徹底攻略!対応策とInfo.plistより行うATSの設定値まとめ | Developers.IO
ではでは
今回はこの辺で!ヽ(•̀ω•́ )ゝ✧
