HOME > WKWebview
WKWebview
UIWebViewと同じWebKitを利用しているブラウザコントロール。実行速度、安定性、機能性でUIWebViewよりも勝るとの事ですが、まだ動作不安定な報告もiOS8.1の時点ではされているようですので、 慎重に理想する方がいいかもしれません。UIWebViewを利用しているアプリはWKWebViewに切り替えるだけで処理が改善される可能性も高そうです。
参考:WKWebViewで躓いた10つのまとめ
参考:ハイブリッドアプリの動作性能を飛躍的にアップさせるiOS 8の新ブラウザエンジンを検証する
参考:WKWebView and JavaScript in iOS 8 - using Swift
参考:SwiftでWKWebViewを使ってみた
何がUIWebViewと違うのか
WebGLを正式にサポートを開始
といってもこれはUIWebViewにもiOS8からサポートされているので、特に差にはなっていないのかもしれません
HTML5やCSS3との連動
HTML5はWKWebViewの方が少し勝っている状態。ただし、555満点中でUIWebViewが427、WKWebViewが440とそこまで大差ないようですので、 あまり大きな違いと言えないと思われます。CSS3は同じポイントで差は無いようです。
IndexedDBが有効になりました
トランザクション等を管理するデータベースエンジンです。行と列の従来のデータベースではなくデータをオブジェクトとして保存する次世代DBなのかなと思われます。
以下のサイト様がわかりやすかったので共有です。
HTML5 の IndexedDB を使用した簡単な TODO リスト
Javascript
この数値が大きくかわるようです。UIWebViewではクラッシュしているJSもWKWebViewでは処理できたり、重い処理でも4倍程度の処理速度のようです。
JSをアプリ内で多く実行しているアプリは恩恵を大きく受けるのではと思います。以下サイトではJSが中心のアプリであれば20%程度のパフォーマンスが改善できるのではとのことです。
ハイブリッドアプリの動作性能を飛躍的にアップさせるiOS 8の新ブラウザエンジンを検証する (2ページ目)
やってみた
UIWebViewとはdelegateの箇所が違います。UIWebViewDelegateからWKNavigationDelegateに変わっているようです。
import UIKit
import WebKit
class ViewController: UIViewController,WKNavigationDelegate {
override func viewDidLoad() {
super.viewDidLoad()
let webView = WKWebView(frame: CGRectZero, configuration: WKWebViewConfiguration())
webView.setTranslatesAutoresizingMaskIntoConstraints(false)
webView.navigationDelegate = self
view.addSubview(webView)
view.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("V:|[webView]|", options: NSLayoutFormatOptions.allZeros, metrics: nil, views: ["webView": webView]))
view.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("H:|[webView]|", options: NSLayoutFormatOptions.allZeros, metrics: nil, views: ["webView": webView]))
let url = NSURL(string: "http://swift-salaryman.com")
let request = NSURLRequest(URL: url!)
webView.loadRequest(request)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
func webView(webView: WKWebView!, didFinishNavigation navigation: WKNavigation!) {
//println("Finished navigating to url \(navigation.request.URL)")
}
}
以下サイトを参考にしました。
参考:WKWebView Content loaded function never get called
追加(2015/1/5)
WebViewでモバイル表示Useragentを変更する簡単な方法。よければこちらもどうぞ
↓こんな記事もありますよ!
![]() | SQLiteを使いたい。ラッパーを検証してみる。(#2)前回の記事でSQLiteのラッパのRMDB, SWiftData,SQLite.swiftの検証をトライしまいたが、時間の問題で頓挫してしまいましたので続きです。 。ある程度準備が完了しましたので、それぞれのサンプルを動かしてみてみようと思います。InsertとSelectとインストール感を比較してみます。 |
![]() | UITableViewCellをプログラムで動的に作成するUITableViewをStoryboardで作成する方法は結構ありますが、プログラムだけで作成するサンプルが少なかったので共有します。 |
![]() | AppleWatchでNotificationを受け取る。バイブでブルブル通知する。どうやら現状はAppleWatchのバイブレーションパターンをカスタマイズできないようなのですが、Notificationを受け取る際に ブルブルする状態のようです。つきましては、NotificationをApp側で設定、AppleWatch側で受け取ってブルブルするサンプルを記載していきます。 |
Tweet
![]() |
|||
|