web-dev-qa-db-ja.com

Cordova iOS 9でのWKWebViewの状態?

iOS 8はWKWebViewを導入しました。WKWebViewは、より多くの機能、特にパフォーマンスを大幅に改善するJavascriptコードのJITコンパイルを備えたiOS用の最新のWebビューです。

ただし、iOS 8上のWKWebViewには、デフォルトでCordovaがそれを使用するのを妨げるいくつかのバグがありました。知っている限り、それを使用できるプラグインがありますが、それらはすべて「ベータ」、「不完全」などと言っています。

では、iOS 9のCordovaのWKWebViewの状態はどうなっているのでしょうか?これに関する情報を見つけることができないようです。 CordovaはiOS 9でWKWebViewをデフォルトにしていますか?そうでない場合、なぜ別の方法で公式に有効化できますか?

41
AshleysBrain

新しい編集:2019年6月

AppleはiOS 13ベータ版でUIWebViewを削除していないため、少なくとも1年は使用できるようです。

Ionic WebViewプラグインはバージョン3.0.0以降、Webサーバーを使用しなくなりましたが、代わりにWKURLSchemeHandlerがiOS 10以前のサポートを終了するために必要になりました。

IOS 10をサポートしたい人のためのWebサーバーをまだ持っている2.xブランチへのほとんどの修正をバックポートします。

WKWebViewはcordova-ios 5.0.0に統合されていません。それを使用するにはプラグインが必要です。 6.0.0バージョンには存在するはずです。

そして、現在、IonicCapacitor)、WKWebViewで構築されたApache Cordovaの代替品が利用可能です。独自のプラグインのセットがありますが、ほとんどのCordovaプラグインとも互換性があります https://capacitor.ionicframework.com/

古い編集:2018年8月

AppleはiOS 12でUIWebViewを廃止しました。おそらくiOS 13で削除します。

Apache Cordova 発表済み は、cordova-plugin-wkwebview-engine into cordova-iosは次のメジャーリリース(5.x.x)で使用されますが、UIWebViewは引き続き機能し、デフォルトのものになります。また、実行時にそれらを切り替えて、アプリを簡単にテストすることができます。将来のリリースでは、UIWebViewコード全体が削除され、WKWebViewが唯一のオプションになります。

だが cordova-plugin-wkwebview-engineはまだ多くの問題を抱えています。 GCDWebServerを使用するとWKWebViewの問題のほとんどが解決されるため、 cordova-plugin-ionic-webview を使用することをお勧めします。

新しい編集:2017年11月

Ionicチームは 新しいWKWebViewプラグイン を開始しました。これはCordovaのフォークではなく、GCDWebServerを内部で使用し、Cordovaプラグインの既知の問題のほとんどを克服しています。

新しい編集:2016年8月24日

プラグインにいくつかの拡張機能を追加するionicフレームワークチームによって作成されたApacheのWKWebViewプラグインのフォークを追加するために更新されました。

https://github.com/driftyco/cordova-plugin-wkwebview-engine

拡張機能はおそらくすぐにコアプラグインに組み込まれますが、今すぐ見て、ionic forkをテストしてください。

新しい編集:2015年12月9日

cordova ios 4.0.0 リリース済み および バージョン1.0.cordova-plugin-wkwebview-engine

試すには:

cordova create wkwvtest my.project.id wkwvtest
cd wkwvtest
cordova platform add ios@4
cordova plugin add cordova-plugin-wkwebview-engine

既に述べたように、cordova-plugin-wkwebview-engineはiOS 9のみをサポートし、iOS 8ではUIWebViewを使用し、いくつかの know issues

IOS 8もサポートしたい場合は、Telerikの wkwebview-engine-localhost (実験的)または cordova-plugin-wkwebview を使用できます。どちらもローカルを使用しますウェブサーバー

https://github.com/Apache/cordova-plugins/tree/master/wkwebview-engine-localhost

古いメッセージ:

利用可能なWKWebViewプラグインを使用して、cordovaでWKWebViewを使用できます。

あなたが言及する問題は、WKWebViewがローカルファイルをロードできないため、プラグインがローカルWebサーバーを使用して問題を回避することです。

Telerik https://github.com/Telerik-Verified-Plugins/WKWebView (Webサーバーが組み込まれている)またはCordovaチームのオフィシャル https://github.com/Apache/cordova-plugins/tree/master/wkwebview-engine-localhost (依存プラグインとしてWebサーバーを使用)

あなたが言及したバグはiOS 9で修正されているため、現在のcordovaプラグイン(Webサーバーを使用してiOS 8およびiOS 9と互換性があります)はwkwebview-engine-localhostに変更され、現在の名前はcordova-plugin-wkwebview-engineになりましたiOS 9のみをサポートし、Webサーバーを使用しない新しいプラグインに使用されます

ここで問題を確認して進捗を追跡できます

https://issues.Apache.org/jira/browse/CB-9566

https://issues.Apache.org/jira/browse/CB-9567

編集:ニュースをもたらします https://shazronatadobe.wordpress.com/2015/09/09/Apache-cordova-ios-4-0-0-and-wkwebview-support/

WKWebViewのサポート

Cordova-plugin-wkwebview-engineプラグインはiOS 9のみであり、コアプラグインになります。この更新されたプラグインの開発はまだ進行中です。 Appleはfile:// urlsからドキュメントをロードできなかったバグを修正しました。これはiOS 9のみです。iOS9以外のデバイスでは、cordova-iosはUIWebView。

このプラグインの古いバージョンでは、ローカルWebサーバーを使用してメインドキュメントを読み込みました。この古いプラグインは、iOS 8とiOS 9の両方の展開でWKWebViewを使用する場合に使用できますが、プラグインはCordova-Labs実験として残ります。このプラグインには、リファクタリング作業がいくつかあります。

56
jcesarmobile