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

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

デバッグ時とリリース時に処理を変更する#ifdef DEBUG のやり方

DEBUG時だけ特定の動作をさせて、リリース時に排除したい、そんな時に利用する方法です。Swiftでは標準ではDEBUGとリリースの判断がつかないので、 コンパイル時に設定する必要があります

UITabBarController

スマホ画面下にタブが出てきて画面を切り替えできるUITabBarViewControllerクラスです。UITabBarItemの記事を追加しましたがUITabbarの記事がなかったので追加しました。(※目のチカチカにご注意ください。)

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

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