web-dev-qa-db-fra.com

Android Navigateur WebView VS Phone

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 Browserinstallé 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.

35
Ovidiu Latcu

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.

14
TryTryAgain

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

8
Vatsal Desai

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

8
ondoteam

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.

1
bytebiscuit