У меня есть активность с макетом вроде этого:
<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>
Вот как я его настраиваю:
// 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);
Здесь параметр версии из моего файла манифеста:
<uses-sdk
android:minSdkVersion="10"
android:targetSdkVersion="17" />
Я пытаюсь загрузить эту страницу в WebView:
https://new.livestream.com/lcboise
Страница загружается просто отлично, но я не могу ее зажать. Я пробовал разные комбинации настроек WebView (выше, в том числе другие, не перечисленные), но он просто не будет масштабироваться.
замечания:
1) Загрузите другую страницу, которую я использую (https://lcboise.infellowship.com/UserLogin) в EXACT, тот же WebView позволяет мне увеличивать масштаб.
2) Мое основное тестовое устройство, где НЕ работает, - это HTC One, работающий под управлением Android версии 4.0.4.
3) Я могу загружать и масштабировать страницу livestream на более старом тестовом устройстве. Я использую версию v2.3.3 для Android.
Возможно ли, что что-то на самой странице нарушает работу WebView на HTC One? Если да, то какие-либо догадки о том, что это возможно?
Обновить [РЕШЕНИЕ]:
Вот что мне пришлось добавить в мой WebView, чтобы заставить работать сжимать-масштабировать:
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);
}
});