Pourquoi ne zoomez pas de travail dans mon WebView Android?
J'ai une activité avec une mise en page comme ceci:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="${relativePackage}.${activityClass}" >
<include layout="@layout/window_title" />
<WebView
android:id="@+id/webView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_centerHorizontal="true"
android:layout_below="@+id/linear_layout"/>
</RelativeLayout>
Ici est de savoir comment je vais le configurer:
//Enable JavaScript.
WebView myWebView = (WebView) findViewById(R.id.webView);
WebSettings webSettings = myWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
//Settings so page loads zoomed-out all the way.
webSettings.setLoadWithOverviewMode(true);
webSettings.setUseWideViewPort(true);
webSettings.setBuiltInZoomControls(true);
Voici la version de mon fichier manifeste:
<uses-sdk
android:minSdkVersion="10"
android:targetSdkVersion="17" />
Je suis en train de charger cette page dans la WebView:
https://new.livestream.com/lcboise
Le chargement de la page, mais je ne peux pas pincer pour zoomer. J'ai essayé différentes combinaisons de la WebView paramètres (ci-dessus, y compris d'autres non répertoriés), mais il ne veut tout simplement pas de zoom.
Observations:
1) le Chargement d'une autre page que j'utilise (https://lcboise.infellowship.com/UserLogin) dans le même WebView me permet de faire un zoom.
2) Mon principal dispositif de test, où NE fonctionne PAS, est un HTC One v4 running.4.3 de Android.
3) je peux charger, et de zoom, le livestream de la page sur un ancien appareil de test que j'utilise qui est de la course v2.3.3 de Android.
Est-il possible que quelque chose dans la page elle-même, c'est de casser la WebView en cours d'exécution sur le HTC One? Si oui, des conjectures quant à peut-être le faire?
Mise à jour [SOLUTION]:
Voici ce que j'avais à ajouter à ma WebView pour obtenir de zoom par pincement de travail:
myWebView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
String javascript="javascript:document.getElementsByName('viewport')[0].setAttribute('content', 'initial-scale=1.0,maximum-scale=10.0');";
view.loadUrl(javascript);
}
});
- plus un pour la question..
Vous devez vous connecter pour publier un commentaire.
C'est la page que vous avez lié a la suite de fenêtre d'affichage de la balise meta:
La page qui travaille a une autre fenêtre d'affichage de la balise meta. Le
maximum-scale
bits est de dire la WebView pour ne pas permettre le zoom en plus de la quantité spécifiée.Le site devrait également être rompu à tout moderne navigateur mobile. Réglage du maximum de l'échelle à une faible valeur comme cela n'est pas très "mobile friendly" donc c'est peut-être juste un bug sur le site. Avez-vous essayé de contacter le propriétaire, peut-être qu'ils peuvent le réparer côté serveur?
Il n'y a pas beaucoup que vous pouvez faire dans la WebView qui n'entraînera pas d'autres sites rendu de manière incorrecte. Vous pouvez essayer l'injection de JS pour corriger la page en la modification de la balise meta comme un dernier recours.
Avez-vous essayé cette suggestion?
Voir Désactiver le zoom par pincement dans WebView?
Note le lien est en ce qui concerne pour la désactivation du zoom. Mais peut-être que votre zoom est désactivé par défaut car certains utilisateurs suggèrent.
Ajouter ces deux lignes pour permettre à pincer pour zoomer dans webview
Pour Le Zoom :
Pour Désactiver:
wv.getSettings().setBuiltInZoomControls(true);
wv.getSettings().setDisplayZoomControls(false);
a fonctionné parfaitement pour moi.