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の互換性なんかも考慮しないといけず面倒なのは変わらないですね。 新しいアプリ作成にはオススメです!

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

presentViewControllerで画面遷移下からビョーン

下からビョーンとUIViewControllerを出す方法を記載します。この処理も多用していたのですがこのHPになかったので追記しました。 Navigationと連動させた横へシャーと移動するスライドの関数(pop)とは違うので注意です。

SQLiteを使いたい。ラッパーを検証してみる。(#2)

前回の記事でSQLiteのラッパのRMDB, SWiftData,SQLite.swiftの検証をトライしまいたが、時間の問題で頓挫してしまいましたので続きです。 。ある程度準備が完了しましたので、それぞれのサンプルを動かしてみてみようと思います。InsertとSelectとインストール感を比較してみます。

AppleWatchのアプリ登録が開始されました、開発部分を少し翻訳

ItunesconnectにもAppleWatchのアイコン やスクリーンショットが登録できる画面が追加されています。あと24日、登録予定している人は審査を考えても後10日程度ではないでしょうか。 スタートダッシュに追いつくには今が頑張りどころなのかもしれません!
このエントリーをはてなブックマークに追加
右側のFacebookのLikeをクリック頂けると記事更新の際に通知されますので宜しければご利用下さい!