J'ai connu BEAUCOUP de comportements étranges en utilisant WebView
dans Android
et je me demande pourquoi il y a tant de différences entre le WebView
et le Browser
installé sur chaque téléphone?
Par exemple, j'ai développé des applications qui devaient afficher le contenu de HTML
, qui contenait soit jquery-mobile
, flash
, javascript
, YouTube intégré et ainsi de suite. J'ai donc eu beaucoup de problèmes avec l'affichage de ces pages dans WebViews
. Soit ils ne s'afficheraient pas du tout, juste vides, soit les vidéos ne seraient pas lues, etc. Et ce qui est étrange, c'est qu'ils fonctionnent correctement s'ils sont ouverts dans le Browser
installé sur le téléphone. J'avais activé Javascript, j'ai essayé différents WebSettings
, j'avais défini les WebChromeClient
et WebViewClient
recherche d'erreurs javascript ... mais rien n'a fonctionné.
J'ai donc conclu que le composant WebView
est complètement différent de l'application Browser
installée sur les téléphones. Je pense que chaque fabricant crée son propre Browser
pour prendre en charge autant de pages que possible, et le WebView
reste le standard, inclus dans le Android SDK
.
Ai-je raison? Ou il y a une autre raison/explication à cela? Merci.
ÉDITER: Tout ce que @ondoteam a suggéré a été activé et défini pour le moment. Je n'ai plus les références à ces sites Web, qui étaient de toute façon internes.
Cet article décrit votre spéculation sur les différences de navigateur de stock entre les fabricants, c'est absolument vrai: 5 vérifications de la réalité dont chaque équipe a besoin avant de travailler sur Android webkit
... ce qui cause des problèmes et des problèmes mystérieux/difficiles à diagnostiquer/résoudre.
En ce qui concerne vos problèmes avec votre implémentation de WebView
:
La version de jquery-mobile
Peut être un problème jquery-mobile chargé dans une Android WebView si vous utilisez jquery.mobile-1.0.1.min.js
Vous voudrez peut-être essayez le jquery.mobile-1.0.1.js
non compressé
Et Flash: -/Bonne chance: Écran clignotant lors de l'utilisation d'une webview avec flash
Flash dans WebView ne fonctionne pas sur Android 3.2
La vidéo Flash ne s'affiche pas dans WebView pour Android 3.0.1
Pour charger SWF:
Charger un SWF dans une WebView
chargement des fichiers flash (.swf) webview dans Android
Bonne chance avec cela, semble être un grand nombre de variables avec les appareils, Android, etc. Et prendra persistance avec essai/erreur.
Le navigateur de stock et WebView diffèrent. En utilisant tous les réglages comme
WebView browser;
browser.clearFormData();
browser.clearHistory();
browser.clearCache(true);
browser.getSettings().setAppCacheEnabled(true);
browser.getSettings().setDatabaseEnabled(true);
browser.getSettings().setDomStorageEnabled(true);
browser.setWebChromeClient(new WebChromeClient());
il ne charge toujours pas correctement les images haute résolution qui sont parfaitement bien chargées par le navigateur Android. Seule une partie de l'image peut être visible sur l'écran de visualisation Web qui apparaît entièrement sur le navigateur Android normal. Ce comportement est également observé avec le dernier Android 4X SDK. Ce qui signifie que le navigateur par défaut Android modifie considérablement le code du kit Web/de la vue Web pour afficher toute URL
WebView
par défaut est limité. Vous devez appeler setWebChromeClient
et votre famille pour avoir une expérience de navigation décente. De plus, n'oubliez pas setJavaScriptEnabled()
et d'autres choses similaires. Désolé pour ma brièveté ... Je pense que vous n'avez pas besoin d'exemples.
http://developer.Android.com/reference/Android/webkit/WebView.html
avez-vous vérifié cette question: jquery-mobile chargé dans un Android WebView
il se peut que vous utilisiez les mauvaises bibliothèques. Vérifiez dans tous les cas.