Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
337
Help us understand the problem. What is going on with this article?
@mono0926

iOS 9の新しいWebビュー: SFSafariViewController

More than 3 years have passed since last update.

【追記】SFSafariViewControllerが出た当初は本記事のようにほぼカスタマイズ性が無かったですが、元々のコンセプトはブレない範囲で少しずつカスタマイズ性が提供されています。

こちらなどご覧ください:
What's New in Safari View Controller - WWDC 2017 - Videos - Apple Developer


以下、iOS 9 SDK時点での SFSafariViewController についてです。

UIWebView・iOS 8で追加されたWKWebViewに加えて、iOS 9ではSFSafariViewController というものが追加されました。

手軽なAPIなので、今作っているPlayer!にもちょちょいと組み込めそうです( ´・‿・`)

※ 本記事は Apple による公開ドキュメントを元に構成しています

SFSafariViewControllerとは何か

  • アプリ内でWebビューを表示したい時に使える
    • UIWebView・WKWebViewと同様
  • 最大の特長は、 Safariとクッキーやその他データを共有できること
    • ログイン状態とか引き継がれてとても便利( ´・‿・`)
  • APIがかなりシンプル
    • 特定のURLを渡して表示する以外はほぼ何も出来ない
    • 使うの簡単
  • Safariとの大きな違いはタブ切り替えが無いことなど

どういう時に使えそう?

  • とりあえずシンプルにアプリ内でWebビューを出したい時
    • ナビゲーションボタン・シェアボタン・リロードボタンなどが標準で付く
    • UIWebView・WKWebViewはナビゲーション対応とかするとちょっと面倒
  • ユーザーがSafariアプリへ移っちゃうのをなるべく防ぎたい時
    • Safariと同等でデータも共有されるので、Safariアプリへ飛びたくなる動機はほぼ無さそう
    • iOS 9向けには、Safariで開くの遷移先をこちらにしちゃっても良いかも( ´・‿・`)
    • ただ、iOS 9ではSafariへの遷移が、PUSH遷移ぽくかつ左上にbackボタンも表示されるのでSafariへ遷移して離脱はこれまでより気にしなくて良いかも
  • カスタムUIを組みたい時などには使えない?
    • フルスクリーン表示じゃ無くてContainer Viewとか使えば、Safariとのデータ共有と、カスタムUIの良いとこ取りも出来るかも?

フルスクリーン表示じゃ無くてContainer Viewとか使えば、Safariとのデータ共有と、カスタムUIの良いとこ取りも出来るかも?

viewDidLoadではめ込みたい部分にaddSubviewだけしてみたら真っ白でサイトが表示されずでしたが、少し細工するといけました( ´・‿・`)

addChildViewController(webVC)
webVC.didMoveToParentViewController(self)
webContainerView.addSubview(webView)

Simulator Screen Shot May 18, 2016, 11.55.01 AM.png
(下部のシェア部分がカスタムビュー)

参考資料

337
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
mono0926
プロフィール: https://stackoverflow.com/story/mono0926 以前開発していたJOIN US: http://joinus30.com 2015年に開発しててベストアプリにも選ばれたPlayer!: http://www.playerapp.tokyo

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
337
Help us understand the problem. What is going on with this article?