ios 8のwebkit frameworkでアプリ内ブラウザがどう変わる?
DESCRIPTION
2014.7.2 at iOS_LTTRANSCRIPT
iOS 8のWebKit Frameworkで アプリ内ブラウザが どう変わる?
Kosuke Ogawa(@koogawa)
•小川航佑 Kosuke Ogawa • @koogawa • 趣味と仕事の両方でiOSアプリを開発
WebKit Framework• iOS 8から追加されたフレームワーク
• いわゆる”アプリ内ブラウザ”
• 従来のUIWebViewより高機能
• WKWebViewというクラスを使う
• Interface Builderからは追加できない?
主な機能UIWebViewとの違いを中心に
読込みの進捗が取れるように
• (double)estimatedProgress プロパティ
• 0.0 ~ 1.0 の値が入っている
閲覧履歴を扱えるように
• 前後の閲覧履歴を取得できる
• タイトルとURLが保存されている
• 特定の位置にジャンプできる
スワイプで戻る・進むが可能に
• 設定でオン・オフの切り替えが可能
• デフォルトは オフ
タイトル・URLが取得可能に
• title、URLプロパティで簡単に取得できる
• JavaScriptを使って取得しなくてもよくなった!
NSString* title = [webView stringByEvaluatingJavaScriptFromString:@"document.title"];×
細かい設定が可能に
• WebViewの最小フォントサイズ
• JavaScriptが新ウィンドウを自動的に開くのを許可するか
• JavaScriptの実行を許可するか
デリゲートも増えてます• ページを探し始めた
• ページの読み込みを開始した
• ページの読み込み失敗
• リダイレクトが発生した
• その他いろいろ
その他いろいろ
• リロードの種類が増えた
• - reload
• - reloadFromOrigin
• JavaScriptエラーを受け取れるように
パフォーマンス
http://9to5mac.com/2014/06/03/ios-8-webkit-changes-finally-allow-all-apps-to-have-the-same-performance-as-safari/
• iOS 8のWebKitでは高速なJavaScriptエンジン(Nitro)が使えるようになった
• (これまではSafariでしか使えなかった)
• Safariと同等のパフォーマンスが出るようになる
デモ
まとめ
• アプリ内ブラウザがより高機能・高性能になる
• ただし、移行作業が必要
• iOS 8以上でのみ動作
ありがとう ございました
参考資料
• WebKit Framework Referencehttps://developer.apple.com/library/prerelease/ios/documentation/Cocoa/Reference/WebKit/ObjC_classic/index.html