web-dev-qa-db-ja.com

基本的なIonic Cordova WKWebviewEngineプラグインを使用したプロジェクトでも白い画面が生成されます

私の問題:私が開発しているionicアプリは、UIWebViewが原因であることがわかった後、ひどく遅いです。 m WKWebViewが最も有望なソリューションであり、それを高速化する方法を探しています。

私のプロジェクトはどのように見えるか:サンプルを設定するときionicプロジェクト( http:// ccoenraets .github.io/ionic-tutorial/install-ionic.html たとえば)現在のCordova 4.1.0 CLI(私はIonic 1.2.4)UIWebViewを使用しています)ただし、Cordova 4以降、新しく高速なWKWebViewはすぐにサポートされ、少なくともiOS 9では強制できます( cordova 4はWKWebViewをサポートします )。

私が使用して構成したプラグイン:cordova plugin add cordova-plugin-wkwebview-engineを介してiOSプラットフォーム(現在9.3)のサポートが追加されています。このプラグインが追加され、config.xmlで適切に構成された場合

<feature name="CDVWKWebViewEngine"> <param name="ios-package" value="CDVWKWebViewEngine" /> </feature> <preference name="CordovaWebViewEngine" value="CDVWKWebViewEngine" />

これまでに試したこと:ターミナルionic build iosでビルドが成功し、OS X ElCapitanにXCode7.3経由でアプリをインストールするとコンソールログの10.11.3にUsing WKWebViewメッセージが出力されますが、スプラッシュスクリーンの直後に、アプリコンテナがフェードインして死の白い画面になります。そのプラグインを削除するとすぐに、UIWebViewが使用され、アプリは期待どおりに機能します。

Alternative:元のプラグインを置き換える wkwebview-engine-localhost ローカルホストが統合されたプラグインで動作します。私が理解したように、WKWebviewはcordovaとionic箱から出してすぐにサポートされるべきであり、iOS8をサポートするために開発された統合サーバーを備えた「labsプラグイン」に依存する必要はありません。特にfile://ステートメントの処理に関しては、WKWebViewには古いUIWebViewと比較してかなりの制限があることを理解しています 既知の問題 、しかし確かに誰かがいるに違いありませんIonic + Cordova WKWebViewを手間をかけずに動作させた人はいますか?Webビューの単純な速度向上を達成するためのより良い方法があるはずです。

おそらくすべてのソリューション、構成、プラグインの組み合わせ、cordova cliバージョンのダウングレード(WKWebViewサポートの場合は最低4.0.0)、キャッシュのクリアとデバイスのリセットと再起動、プラットフォームの新規インストールと再読み込み、cordova、npm、さまざまな更新を試しましたプラグインですが、上記のApache labsプラグインを除いて、すべてがまったく役に立たなかったか、何も変更されていない巨大な混乱のように見えました。

ローカルのSafariを介してデバイス上のiOSアプリをリモートデバッグすると、要素ツリーで、bodyタグが空のままであるか、angular)の単純な「ng-view」プレースホルダーであることがわかります。 =要素が表示されます。WKWwebViewを介したcordovaが処理する方法で、ファイル/角度スクリプトの取得に問題があるはずです。

注:アプリ自体は、ionic serveまたはionic emulate iosのいずれかを使用して、XCodeを介して実際のデバイスにデプロイする場合にのみ正常に機能します(ionic run iosは機能しないため、別の話です)白い画面が表示されます。

Localhost + wkwebviewプラグインを使用するか、ユーザーの速度を低下させる必要があるように思われるので、どんな助けでも大歓迎です。

どうもありがとう!

12
hajn

WKWebviewで動作するionic2プロジェクトを取得しました。私が行った手順は、ionic1でも機能していると思います。

1)WKWebviewプラグインをインストールします。

ionic plugin add cordova-plugin-wkwebview-engine

2)ローカルウェブサーバープラグインをインストールします。

ionic plugin add https://git-wip-us.Apache.org/repos/asf/cordova-plugins.git#master:local-webserver

3)config.xmlに以下を追加/変更します。

.。

<content src="http://localhost:8080" />

.。

<allow-navigation href="gap://ready" />
<allow-navigation href="http://localhost:*" />

.。

<feature name="CDVWKWebViewEngine">
    <param name="ios-package" value="CDVWKWebViewEngine" />
</feature>
<preference name="CordovaWebViewEngine" value="CDVWKWebViewEngine" />
9
flavordaaave

WkWebViewの実装が機能するIOS)にCrossWalkを使用することを検討しています。

https://crosswalk-project.org/documentation/ios.html

このプロジェクトはIntelによってサポートされているため、その背後にはしっかりとしたサポートがあります。

もう1つのオプションは、WKWebViewでスワップするTelerikによって開発された次のプラグインをインストールすることです。

https://github.com/Telerik-Verified-Plugins/WKWebView

Cordovaは、プラグインを使用したWKWebViewのサポートにも移行しています。 WKWebViewのサポートはひどいです。 iOS7でリリースされて以来、バグがたくさんあります。 iOSのリリースごとに徐々に修正されています。

IOS10がいくつかの改善を行うことを期待しています。

1
TWilly