2014-12-01 41 views
8

我有這樣的佈局的活動:爲什麼捏到縮放不能在我的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> 

下面是我如何配置它:

// 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)中完全相同的WebView讓我放大。

2)我的主要測試設備,哪裏不工作,是HTC One運行的Android 4.4.4版本。

3)我可以加載和縮放我正在使用的運行v2.3.3的舊版測試設備上的直播頁面。

頁面本身是否有可能破壞HTC One上運行的WebView?如果是這樣,那麼猜測可能會這樣做?

更新[解決方案]:

這是我不得不添加到我的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); 
     } 
    }); 
+1

加一個問題.. – 2016-06-14 08:45:23

回答

10

這是你的鏈接頁面有如下視meta標籤:

<meta name="viewport" content="width=1024, maximum-scale=1.0, target-densitydpi=device-dpi"> 

的作品有不同的視meta標籤的頁面。 maximum-scale位告訴WebView不允許放大超過指定的數量。

該網站也應該在任何現代的手機瀏覽器中被打破。將最大比例設置爲這樣的低值並不是非常「移動友好」,因此它可能只是網站上的一個錯誤。你有沒有嘗試聯繫老闆,也許他們可以修復它的服務器端?

在WebView中沒有太多的事情可以做,不會導致其他網站渲染不正確。作爲最後的手段,您可以嘗試通過注入JS來修復頁面changing the meta tag

+0

感謝您的回覆!我最終不得不像你所說的那樣在頁面中注入一些Javascript。看到我上面的更新來查看我放入它的確切代碼。 – 2014-12-02 21:34:31

+0

你的回答幫了我,再加上1 – 2016-06-14 08:45:45

4

您是否嘗試過這個建議?

webSettings.setSupportZoom(true); 

Disable pinch zoom in WebView?

注意鏈路處於禁用變焦的問候。但是也許你的縮放功能被默認禁用,正如一些用戶所建議的。

+0

感謝您的回覆!不幸的是,這不起作用。就像我上面所說的,我有點困惑,爲什麼我可以在確切的Activity中在確切的WebView中加載不同的頁面,並且它放大就好。乍一看,這似乎暗示了網頁本身是問題的根源。 – 2014-12-01 20:47:38

1

對於變焦:

webSettings.getSettings().setBuiltInZoomControls(true); 

對於禁用:

webSettings.getSettings().setBuiltInZoomControls(false); 
3

添加這兩條線,使捏在web視圖放大

webview.getSettings().setSupportZoom(true); 
webview.getSettings().setBuiltInZoomControls(true) 
0

wv.getSettings()setBuiltInZoomControls(。真正); wv.getSettings()。setDisplayZoomControls(false);

完美地爲我工作。