Swift転職なら=>【LevTech】
↑クリックして拡大
↑クリックして拡大
↑クリックして拡大
↑クリックして拡大

頭痛が減ったので共有です!

rebuild.fmを応援しています!

HOME > SFSafariViewController

SFSafariViewControllerとUIWebViewの違い

先日ブラウザを調査していると見かけた事の無いコントロールSFSafariViewControllerというものに出会いました。ios9からのコントロールで既に多くのレビューがあるのですが改めて調査してみます。 UIwebviewやwkwebviewと同等のビューなのか、何が違うのか検証してみました。

サンプル画像

参考:iOS 9の新しいWebビュー: SFSafariViewController
参考:[iOS 9] SFSafariViewController の概要
参考:SFSafariViewControllerを試す
参考:iOS 9: Getting Started With SFSafariViewController
参考:SFSafariViewController Apple

やってみた

どうやら制約はありそうですが、単純にウェブを表示するだけであれば短く記載できるようなので、ちょっと比較してみます。 (import SafariServices を忘れずに!)


import UIKit
import SafariServices

class ViewController: UIViewController {
    
    override func viewDidAppear(animated: Bool) {
        if #available(iOS 9.0, *) { // <- ios9以上しか使えない
            let svc = SFSafariViewController(URL: NSURL(string: "http://swift-salaryman.com/")!)
            self.presentViewController(svc, animated: true, completion: nil)
        }
    }
}

実質必要なのは3行程度でしょうか。UIWebViewだと表示領域等の設定やDelegateを引っ付ける必要があるので便利ではありますね!Shareのボタンがフッタに ついていたりNextやForward、あとは本来のSafariで起動するボタンも右下についているようです。

あと広告関連でクリックしても従来のwebviewだとクッキーをサファリから同期していませんでしたー例えば楽天アフィリエイトをクリックしても証拠を残せない。これは楽です!今まではuiwebviewがアクセスするhttpをキャッチしてsafariブラウザに飛ばしていたので、その一連の作業が無くなります。

まとめ

UIwebviewの様に見た目をカスタマイズする事はできませんが、利用メリットはコーディングの量が少なくなるメリットだけでもios9以降であれば利用しても良いのかなと思いました。ただ、古いアプリなんかを更新したい場合、osの互換性なんかも考慮しないといけず面倒なのは変わらないですね。 新しいアプリ作成にはオススメです!

↓こんな記事もありますよ!

NSNotificationCenterでコード間のイベントやりとり

AppDelegateのイベント(アプリがアクティブ)になるタイミングでViewControllerに通知する為にはどうすればいいのか?と 調査しているとこのクラスにたどり着きました。delegateを利用せずにイベントの通知をViewController間で簡単に実装できるので 使いやすいです!

UISlider

横バーをぐりぐり移動させて値変更させるコントロールです。

UIToolBar

画面の端っこに追加できるツールバーコントロール。アプリにピリッとアクセントを付けます。機能を追加したい時に便利です
このエントリーをはてなブックマークに追加
右側のFacebookのLikeをクリック頂けると記事更新の際に通知されますので宜しければご利用下さい!