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

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

UITextViewやらで縦書きができないか検証

「文字の縦書き」をやってみたいのですが、どうもUITextView等には設定が無いとのことです。 調べていると、本当にない?のかな。少し調査して作れそうなもんであればつくってみれたら、、、との気持ちで進めてみます。

UITableViewCellをプログラムで動的に作成する

UITableViewをStoryboardで作成する方法は結構ありますが、プログラムだけで作成するサンプルが少なかったので共有します。

WatchKitでウォッチに簡単なラベルを表示してみる

前回の記事ではWatchKitのサンプルの画面キャプチャを紹介しましたので、今回は実際にプロジェクトの作成から簡単なラベルを表示する、 簡単な最初の第一歩までを説明します。AppleWatchの細かい説明は後にしてひとまず動作させてみます。
このエントリーをはてなブックマークに追加
右側のFacebookのLikeをクリック頂けると記事更新の際に通知されますので宜しければご利用下さい!