いち早くiOS 9でWKWebViewを試せるCordova WKWebView Polyfill Plugin

やはり、iOS 9ではUIWebViewを使うのは現実的ではないらしく、一応Angular.jsの世界ではモンキーパッチが提供されているようですが、当方Angular.jsがブームになる前からのアプリを保守しているため使うことができず。。。

WKWebViewに移行するしかなさそうなのですが、鉄板ルートのCordova iOS 4.0の提供はまだもう数日?はかかりそう。
まだBeta版にも至っていない状況ですが、開発中のコードをGitHubから持ってきて試してみても、いまいちちゃんと動かない感じ

Cordova WKWebView Polyfill Pluginを試してみる

そんな中で見つけたのが、Cordova WKWebView Polyfill Plugin。

Polyfillとは、CSSの世界なんかでよく聞きますが、こういう意味。

古いブラウザーに欠けている部分、新しいブラウザーでも足りない機能の穴を埋めることを、ポリフィル (polyfill) という風に呼ばれています。

もともと、壁の穴を埋めるための有名な商品で Polyfilla (ポリフィラ) というのがあり、ブラウザの穴を埋めるという行為も名前からポリフィルという言葉を動詞として使ったということです。

http://keicode.com/script/what-is-polyfill.php

そんな語源があったのですね。

インストール

cordova plugin add @telerik/cordova-plugin-wkwebview
cordova prepare

インストールは簡単で、Cordovaの通常の形式でインストールできます。
プラグインをインストールするだけで、それ以外の作業は特に必要なく、iOS8以上ならWKWebView、それ未満ならUIWebViewが使用されるようになります。

インストールの際に、合わせてcordova-plugin-webserverが導入されます。

このwebserverプラグインがポイントで、例えばCordovaアプリのViewに相当するindex.htmlは、file://~ではなくて、http://localhost~でアクセスされます。そのため、CORS問題が回避できるのです。

WKWebViewを使ったからといって全て解決ではない

残念なことですが、WKWebViewを使ったからといって、iOS 8までで動作していたCordovaアプリが完全に動くようになるわけではありません。
UIWebViewとWKWebViewは完全に上位互換というわけではなく、仕様上の違いがありますし、現状ではそれ以外の問題が発生することもあります。

そういう意味では、Cordova WKWebView Polyfill PluginでWKWebViewでの一応の動作は確認できるけれども、Codova iOS 4.0の正式リリースも待つ必要があるのではないかと思います。

この記事を書いた人

井上 研一

株式会社ビビンコ代表取締役、ITエンジニア/経済産業省推進資格ITコーディネータ。AI・IoTに強いITコーディネータとして活動。2018年、株式会社ビビンコを北九州市に創業。IoTソリューションの開発・導入や、画像認識モデルを活用したアプリの開発などを行っている。近著に「使ってわかった AWSのAI」、「ワトソンで体感する人工知能」。日本全国でセミナー・研修講師としての登壇も多数。