Ich habe eine Aktivität mit einem Layout wie folgt aus:Warum funktioniert Pinch-to-Zoom in meinem Android WebView nicht?
<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>
Hier ist, wie ich es bin konfigurieren:
// 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);
Hier ist die Version Einstellung von meinem Manifest-Datei:
<uses-sdk
android:minSdkVersion="10"
android:targetSdkVersion="17" />
Ich versuche, diese Seite in das WebView zu laden:
https://new.livestream.com/lcboise
Die Seite lädt gut, aber ich kann nicht zum Zoomen drücken. Ich habe verschiedene Kombinationen der WebView-Einstellungen (oben, einschließlich anderer nicht aufgeführt) ausprobiert, aber es wird einfach nicht zoomen. Beobachtungen
:
1) Laden eine andere Seite nach oben Ich verwende (https://lcboise.infellowship.com/UserLogin) in dem exakt gleichen WebView ermöglicht es mir, um es zu vergrößern.
2) Mein Haupttestgerät, wo es NICHT funktioniert, ist ein HTC One mit v4.4.3 von Android.
3) Ich kann die Livestream-Seite auf einem älteren Testgerät laden und zoomen, das mit v2.3.3 von Android läuft.
Ist es möglich, dass etwas in der Seite selbst das WebView bricht, das auf dem HTC One läuft? Wenn ja, könnten Sie es tun?
Update [Lösung]:
Hier ist, was ich meine WebView hinzufügen musste erhalten Pinch-to-Zoom arbeiten:
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 eins für die Frage .. –