Android WebView VS navigateur téléphonique
j'ai connu beaucoup de comportements étranges avec l'utilisation de 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?
à titre d'exemple, j'ai développé certaines applications qui devaient afficher le contenu 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 à l'intérieur de WebViews
. Soit elles ne s'affichent pas du tout, juste Vierges, soit les vidéos ne seront pas lues et ainsi de suite. Et la chose étrange est qu'ils fonctionnent correctement lorsqu'il est ouvert dans les Browser
installé sur le téléphone. J'avais JavaScript activé, j'ai essayé diffrent WebSettings
, j'avais mis le WebChromeClient
et WebViewClient
à la recherche d'erreurs javascript... mais rien n'a fonctionné.
Donc Je je suis arrivé à la conclusion 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 fabrique son propre Browser
pour supporter autant de pages que possible, et le WebView
reste le standard, inclus dans le Android SDK
.
n'est-ce pas? Ou y a-t-il une autre explication à cela? Grâce.
EDIT: Everything que @ondoteam a suggéré était activé et réglé à l'heure. Je n'ai plus les références à ces sites, qui étaient de toute façon internes.
4 réponses
cet article décrit vos spéculations sur les différences de stocks de navigateur entre les fabricants, qui est absolument vrai: 5 la réalité vérifie chaque équipe a besoin avant de travailler sur Android webkit
...ce qui ne cause des problèmes et mystérieux/difficile à diagnostiquer/résoudre les problèmes.
en ce qui concerne vos problèmes avec votre WebView
mise en œuvre:
Version de jquery-mobile
peut-être un problème jQuery-mobile chargé dans un android WebView si vous utilisez jquery.mobile-1.0.1.min.js
vous pouvez vouloir essayer le non compressé jquery.mobile-1.0.1.js
et Flash: - / bonne chance: clignotement D'écran lors de l'utilisation d'un webview avec flash
Flash dans WebView ne fonctionne pas sur Android 3.2
Flash video ne s'affichant pas dans WebView pour Android 3.0.1
pour le chargement SWF:
Charger un SWF dans une WebView
chargement de fichiers flash (.swf) webview android
Bonne chance avec cela, semble, comme beaucoup de variables avec les appareils, les versions d'Android, etc. Et prendra persistance avec essai / erreur.
WebView
par défaut est limité. Vous devez appeler setWebChromeClient
et la famille pour avoir une expérience de navigation décente. En outre, n'oubliez pas setJavaScriptEnabled()
et d'autres choses similaires. Désolé pour mon souci de concision... Je pense que vous n'avez pas besoin d'exemples.
http://developer.android.com/reference/android/webkit/WebView.html
le navigateur de stock et WebView diffèrent .En utilisant tous les ajustements 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());
pourtant, il ne charge pas correctement les images haute résolution qui est chargé parfaitement bien par le navigateur android. Seule une partie de l'image peut être visible sur l'écran webview qui apparaît entièrement sur le navigateur android normal. Ce comportement est également observé avec le dernier SDK 4x Android. Ce qui signifie que le navigateur android par défaut modifie considérablement le code webkit / webview pour montrer n'importe quelle url
avez-vous coché cette question: jquery-mobile chargé dans un android WebView
il se peut que vous utilisiez les mauvaises bibliothèques. Il suffit de vérifier dans tous les cas.