Ho un'attività con un layout simile a questo:Perché il pinch-to-zoom non funziona nel mio Android WebView?
<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>
Ecco come sto configurarlo:
// 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);
Ecco l'impostazione versione dal mio file manifesto:
<uses-sdk
android:minSdkVersion="10"
android:targetSdkVersion="17" />
Sto provando a caricare questa pagina nella WebView:
https://new.livestream.com/lcboise
La pagina si carica bene, ma non riesco a pizzicare per ingrandire. Ho provato diverse combinazioni delle impostazioni di WebView (sopra, compresi gli altri non elencati), ma semplicemente non lo zoom.
Osservazioni:
1) Caricamento in corso una pagina diversa che sto usando (https://lcboise.infellowship.com/UserLogin) nella stessa identica WebView mi permette di Zoom.
2) Il mio dispositivo di prova principale, dove NON FUNZIONA, è un HTC One con versione v4.4.3 di Android.
3) Posso caricare, e zoomare, la pagina in diretta su un dispositivo di test più vecchio che sto usando che esegue la versione 2.2 di Android.
È possibile che qualcosa nella pagina stessa interrompa WebView in esecuzione su HTC One? Se è così, qualche ipotesi potrebbe farlo?
Aggiornamento [SOLUZIONE]:
Ecco quello che ho dovuto aggiungere al mio WebView per ottenere pinch-to-zoom per lavorare:
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);
}
});
più uno per la domanda .. –