iOS 8 a introduit WKWebView, une vue Web modernisée pour iOS avec plus de fonctionnalités, en particulier notamment la compilation JIT pour le code Javascript qui améliore considérablement les performances.
Cependant WKWebView sur iOS 8 avait quelques bugs qui empêchaient Cordova de l'utiliser par défaut. AFAIK, il existe des plugins qui peuvent l'utiliser, mais ils disent tous "bêta", "incomplet" etc. Aussi, autant que je sache, iOS 9 corrige les bogues qui empêchaient Cordova de basculer par défaut sur WKWebView dans iOS 8.
Alors, quel est l'état de WKWebView dans Cordova sur iOS 9? Je n'arrive pas à trouver d'informations à ce sujet. Cordova utilise-t-il par défaut WKWebView sur iOS 9? Sinon, pourquoi pas, et peut-il être officiellement activé d'une autre manière?
Nouvelle édition: juin 2019
Apple n'a pas supprimé UIWebView
dans la version bêta d'iOS 13, il semble donc qu'il puisse être utilisé au moins pendant une autre année.
Le plug-in Ionic WebView, à partir de la version 3.0.0, n'utilise plus de serveur Web, mais le WKURLSchemeHandler
à la place, qui nécessitait de supprimer le support pour iOS 10 et les versions antérieures.
Rétroportez toujours la plupart des correctifs vers la branche 2.x qui a toujours le serveur Web pour ceux qui souhaitent prendre en charge iOS 10.
WKWebView n'a pas été intégré dans cordova-ios 5.0.0, un plugin est toujours requis pour l'utiliser. Devrait être là pour la version 6.0.0.
Et maintenant il y a Ionic Condensateur disponible, une alternative à Apache Cordova qui a été construite avec le WKWebView
depuis le début. Il a son propre ensemble de plugins, mais il est également compatible avec la plupart des plugins Cordova. https://capacitor.ionicframework.com/
Ancienne édition: août 2018
Apple a déprécié UIWebView
dans iOS 12 et le supprimera probablement dans iOS 13.
Apache Cordova a annoncé qu'il intégrera le cordova-plugin-wkwebview-engine
en cordova-ios
dans la prochaine version majeure (5.x.x), mais UIWebView
fonctionnera toujours et sera la version par défaut. De plus, vous pourrez basculer entre les deux lors de l'exécution pour tester facilement votre application. Dans une version future, il supprimera tout le code UIWebView
et le WKWebView
sera la seule option.
Mais cordova-plugin-wkwebview-engine
ont encore beaucoup de problèmes. Je recommande toujours d'utiliser cordova-plugin-ionic-webview car l'utilisation de GCDWebServer
résout la plupart des problèmes de WKWebView
.
Nouvelle édition: novembre 2017
L'équipe ionique a lancé un nouveau plugin WKWebView qui n'est plus un fork de celui de Cordova et utilise GCDWebServer
en interne et surmonte la plupart des problèmes connus du plugin Cordova.
Nouvelle édition: 24 août 2016
Mis à jour juste pour ajouter un fork du plugin WKWebView
d'Apache créé par l'équipe du framework ionic qui ajoute quelques améliorations au plugin.
https://github.com/driftyco/cordova-plugin-wkwebview-engine
Les améliorations arriveront probablement bientôt sur le plugin principal, mais vous pouvez jeter un œil et tester la fourche ionic maintenant.
Nouvelle édition: 9 décembre 2015
cordova ios 4.0.0 a été publié et la version 1.0. de cordova-plugin-wkwebview-engine
Pour l'essayer:
cordova create wkwvtest my.project.id wkwvtest
cd wkwvtest
cordova platform add ios@4
cordova plugin add cordova-plugin-wkwebview-engine
Comme je l'ai déjà dit, cordova-plugin-wkwebview-engine ne prend en charge que iOS 9, sur iOS 8, il utilisera UIWebView et a certains problèmes connus
Si vous souhaitez également prendre en charge iOS 8, vous pouvez utiliser le wkwebview-engine-localhost (experimental) ou cordova-plugin-wkwebview de Telerik, les deux utilisent un local serveur Web
https://github.com/Apache/cordova-plugins/tree/master/wkwebview-engine-localhost
ANCIEN MESSAGE:
Vous pouvez utiliser WKWebView avec cordova en utilisant les plugins WKWebView disponibles.
Le problème que vous mentionnez est que WKWebView ne peut pas charger de fichiers locaux, les plugins utilisent donc un serveur Web local pour contourner le problème.
Il y en a comme celui-ci de telerik https://github.com/Telerik-Verified-Plugins/WKWebView (avec le serveur Web intégré) ou l'officiel de l'équipe cordova https://github.com/Apache/cordova-plugins/tree/master/wkwebview-engine-localhost (avec le serveur Web comme plugin de dépendance)
Comme le bogue que vous mentionnez est corrigé sur iOS 9, le plug-in Cordova actuel (compatible avec iOS 8 et iOS 9, utilisant le serveur Web) a été renommé wkwebview-engine-localhost, et le nom actuel cordova-plugin-wkwebview-engine sera utilisé pour un nouveau plugin qui prendra en charge iOS 9 uniquement et n'utilisera pas le serveur Web
Vous pouvez voir les problèmes pour suivre les progrès ici
https://issues.Apache.org/jira/browse/CB-9566
https://issues.Apache.org/jira/browse/CB-9567
EDIT: J'apporte des nouvelles https://shazronatadobe.wordpress.com/2015/09/09/Apache-cordova-ios-4-0-0-and-wkwebview-support/
Prise en charge de WKWebView
Le plugin cordova-plugin-wkwebview-engine sera uniquement iOS 9 et ce sera un plugin de base. Le développement de ce plugin mis à jour est toujours en cours. Apple a corrigé le bogue où nous ne pouvions pas charger de documents à partir de file: // urls, et il s'agit uniquement d'iOS 9. Sur les appareils non iOS 9, cordova-ios reviendra à l'utilisation du UIWebView.
L'ancienne version de ce plugin utilisait un serveur Web local pour charger votre document principal. Cet ancien plugin peut être utilisé là où vous souhaitez utiliser WKWebView dans les déploiements iOS 8 et iOS 9, mais le plugin restera une expérience cordova-labs. Ce plugin a un travail de refactorisation à faire.