gpt4 book ai didi

android - 为什么双指缩放在我的 Android WebView 中不起作用?

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:56:32 37 4
gpt4 key购买 nike

我有一个布局如下的 Activity :

<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);

这是我的 list 文件中的版本设置:

<uses-sdk
android:minSdkVersion="10"
android:targetSdkVersion="17" />

我正在尝试在 WebView 中加载此页面:

https://new.livestream.com/lcboise

页面加载正常,但我无法缩放。我已经尝试了 WebView 设置的不同组合(上面,包括其他未列出的),但它就是不会缩放。

观察:

1) 在完全相同的 WebView 中加载我正在使用的不同页面 ( https://lcboise.infellowship.com/UserLogin ) 允许我缩放。

2) 我的主要测试设备是一台运行 Android v4.4.3 的 HTC One。

3) 我可以在我使用的运行 Android 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);
}
});

最佳答案

这是您链接的页面,具有以下视口(viewport)元标记:

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

有效的页面具有不同的视口(viewport)元标记。 maximum-scale 位告诉 WebView 不允许放大超过指定的数量。

该站点在任何现代移动浏览器中也应该被破坏。将 maximum-scale 设置为这样的低值不是很“移动友好”,因此它可能只是网站上的一个错误。您是否尝试过联系所有者,也许他们可以在服务器端修复它?

您可以在 WebView 中做很多事情而不会导致其他网站呈现不正确。您可以尝试通过 changing the meta tag 注入(inject) JavaScript 来修复页面作为最后的手段。

关于android - 为什么双指缩放在我的 Android WebView 中不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27236676/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com