sogar grundlegende Ionic Projekt mit Cordova WKWebview Engine Plugin produziert weißen Bildschirm

8

Mein Problem: Die ionische App, die ich entwickle, ist furchtbar langsam, nachdem ich herausgefunden habe, dass UIWebView der Täter ist, suche ich nach Wegen, es zu beschleunigen, wobei WKWebView die vielversprechendste Lösung ist.

Wie mein Projekt aussieht: Bei der Einrichtung eines Beispiel-Ionenprojekts ( Ссылка zum Beispiel) mit der aktuellen Cordova 4.1.0 CLI (Ich verwende Ionic 1.2.4) UIWebView wird standardmäßig verwendet. Seit Cordova 4 wird das neue und schnellere WKWebView jedoch out-of-the-box unterstützt und kann zumindest in iOS 9 erzwungen werden ( cordova 4 unterstützt WKWebView ).

Das Plugin, das ich benutzt habe & amp; konfiguriert: via cordova plugin add cordova-plugin-wkwebview-engine wird die Unterstützung für die iOS Plattform hinzugefügt (9.3 gerade). Wenn dieses Plugin hinzugefügt und in der config.xml mit

richtig konfiguriert wurde

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

Was ich bisher versucht habe: Im Terminal ionic build ios ist der Build erfolgreich, und wenn die App über XCode 7.3 auf OS X El Capitan 10.11.3 im Konsolenprotokoll installiert wird, wird die Nachricht Using WKWebView gedruckt, aber direkt nach dem Startbildschirm wird der App Container ausgeblendet in einen weißen Bildschirm des Todes. Sobald ich dieses Plugin entferne, wird UIWebView verwendet und die App funktioniert wie erwartet.

Alternative : Ersetzen des ursprünglichen Plugins wkwebview-engine- localhost mit einem mit integriertem localhost, funktioniert. Wie ich es verstanden habe, sollte der WKWebview von cordova und ionic direkt unterstützt werden, ohne auf ein "labs plugin" mit einem integrierten Server angewiesen zu sein, der entwickelt wurde, um iOS 8 zu unterstützen, das ich nicht brauche. Ich verstehe, dass WKWebView einige Einschränkungen im Vergleich zum alten UIWebView hat, besonders wenn es um die Verarbeitung von file:// -Anweisungen geht bekannte Probleme , aber da muss bestimmt jemand da draußen sein, der Ionic + Cordova WKWebView ohne all den Ärger arbeiten ließ Hatte, oder? Es muss bessere Wege geben, um eine einfache Geschwindigkeitsverbesserung für das Webview zu erreichen.

Ich probierte wahrscheinlich jede Lösung, Konfiguration, Plugin-Kombination, cordova cli-Version downgrade (mindestens 4.0.0 für WKWebView-Unterstützung), Caches Clearing und Reset und Neustart meines Geräts, neue Installation und das Lesen von Plattformen und Update von Cordova, npm, verschiedene Plugins, aber alle von ihnen haben entweder gar nicht geholfen, außer dem Apache Labs Plugin oben oder es schien wie eine riesige Sauerei, die nichts änderte.

Beim Remote-Debugging der iOS-App auf dem Gerät über meine lokale Safari kann ich in der Elementbaumstruktur sehen, dass das body-Tag entweder leer bleibt oder ein einfacher "ng-view" -Platzhalter für ein eckiges Element angezeigt wird. Habe ich Recht, dass es ein Problem mit dem Abrufen von Dateien / eckigen Skripten geben muss, so wie cordova es über WKWWebView handhabt?

Hinweis: Die App selbst funktioniert einwandfrei, entweder mit ionic serve oder ionic emulate ios , nur bei der Bereitstellung auf einem echten Gerät über XCode (da ionic run ios nicht funktioniert, aber das ist eine andere Geschichte) erscheint der weiße Bildschirm .

Jede Hilfe wird sehr geschätzt, da es scheint, dass ich entweder das localhost + wkwebview-Plugin verwenden muss oder die Benutzer von schlechter Geschwindigkeit leiden lassen muss.

Vielen Dank!

    
hajn 07.04.2016, 13:18
quelle

2 Antworten

9

Ich habe ein ionic2-Projekt mit WKWebview entwickelt. Ich denke, die Schritte, die ich gemacht habe, arbeiten auch für ionic1:

1) Installiere WKWebview Plugin:

ionic plugin add cordova-plugin-wkwebview-engine

2) Installieren Sie das lokale Webserver-Plugin:

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

3) Hinzufügen / ändern Sie folgendes in Ihrer config.xml:

...

%Vor%

...

%Vor%

...

%Vor%     
flavordaaave 30.06.2016 09:36
quelle
1

Ich arbeite mit CrossWalk für IOS, das eine Implementierung von WkWebView bietet.

Ссылка

Das Projekt wird von Intel unterstützt, daher gibt es eine solide Unterstützung.

Eine andere Option wäre, das folgende Plugin zu installieren, das von Telerik entwickelt wurde und das in einem WKWebView eintauscht.

Ссылка

Cordova unterstützt auch WKWebView mit einem Plugin. Die Unterstützung für WKWebView ist schrecklich. Es ist voller Bugs, seit es in iOS7 veröffentlicht wurde. Es wird langsam behoben jedes iOS-Release.

Hier ist zu hoffen, iOS 10 macht einige Verbesserungen.

    
TWilly 10.06.2016 14:36
quelle