Android中设置WebView禁止缩放网页的步骤

 更新时间:2024年05月25日 10:03:13   作者:lmyc-film  
在Android中如果你想要禁止WebView缩放网页,可以通过设置WebView的一些属性来实现,这篇文章主要给大家介绍了关于Android中设置WebView禁止缩放网页的步骤,需要的朋友可以参考下

在 Android 14 中,你可以通过以下步骤来设置 WebView,禁止缩放网页:

  • 在 WebView 加载网页之前,获取 WebSettings 对象:
WebSettings webSettings = webView.getSettings();
  • 使用 WebSettings 对象禁用缩放:
webSettings.setSupportZoom(false);
webSettings.setBuiltInZoomControls(false);
webSettings.setDisplayZoomControls(false);
  • setSupportZoom(false) 禁止 WebView 支持缩放功能。
  • setBuiltInZoomControls(false) 禁用内置的缩放控件。
  • setDisplayZoomControls(false) 不显示缩放控件。
  • 此外,你还可以设置 WebView 的 setUseWideViewPort 和 setLoadWithOverviewMode 属性,以确保网页适应设备屏幕,不允许用户缩放:
webSettings.setUseWideViewPort(true);
webSettings.setLoadWithOverviewMode(true);
  • setUseWideViewPort(true) 设置 WebView 使用广泛的视口,使网页内容适应屏幕宽度。
  • setLoadWithOverviewMode(true) 设置 WebView 加载的页面以总览模式显示,即按屏幕大小缩放内容。

完整示例代码:

WebView webView = findViewById(R.id.webView);
WebSettings webSettings = webView.getSettings();
webSettings.setSupportZoom(false);
webSettings.setBuiltInZoomControls(false);
webSettings.setDisplayZoomControls(false);
webSettings.setUseWideViewPort(true);
webSettings.setLoadWithOverviewMode(true);
webView.loadUrl("https://www.example.com");

通过以上设置,WebView 将禁止用户缩放网页,并确保网页内容适应设备屏幕。无论在 Android 14 还是其他版本,这些设置都适用。

======================================================================

如果上述设置仍然无法禁止 WebView 的缩放功能,你可以尝试以下几种方法:

  • 在 HTML 中添加 viewport meta 标签:
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">

这个 meta 标签可以控制网页的缩放行为。user-scalable=no 参数可以禁止用户手动缩放网页。

  • 使用 JavaScript 禁用缩放:

如果你有控制网页内容的权限,可以在网页加载完成后,通过 JavaScript 禁用缩放功能。在 WebView 的 onPageFinished 回调中添加以下代码:

webView.setWebViewClient(new WebViewClient() {
    @Override
    public void onPageFinished(WebView view, String url) {
        super.onPageFinished(view, url);
        view.evaluateJavascript("document.addEventListener('touchstart', function(event) { event.preventDefault(); }, false);", null);
        view.evaluateJavascript("document.addEventListener('gesturestart', function(event) { event.preventDefault(); }, false);", null);
    }
});

这段代码通过 JavaScript 禁用了触摸事件和手势事件,从而阻止了缩放行为。

  • 创建自定义的 WebView:

如果以上方法仍然无法满足需求,你可以考虑创建一个自定义的 WebView,并重写其 onTouchEvent 方法来拦截和处理触摸事件,禁止缩放操作。

public class NonScalableWebView extends WebView {
    public NonScalableWebView(Context context) {
        super(context);
    }

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        if (event.getPointerCount() > 1) {
            // 多个手指触摸时,禁止缩放
            return false;
        }
        return super.onTouchEvent(event);
    }
}

然后在布局文件中使用这个自定义的 WebView:

<your.package.name.NonScalableWebView
    android:id="@+id/webView"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

以上方法可以帮助你在 Android 14 以及其他版本中禁止 WebView 的缩放功能。你可以根据实际情况选择适合的方法来实现。

=================================================================

安卓中设置好属性,如果还是不管用,那么网页中仅保留这个吧,去掉initial-scale=1.0。

<meta name="viewport" content="width=device-width">

并设置js

禁止双指放大

document.documentElement.addEventListener('touchstart', function (event) {
  if (event.touches.length > 1) {
    event.preventDefault();
  }
}, false);

禁止双击放大

var lastTouchEnd = 0;
document.documentElement.addEventListener('touchend', function (event) {
  var now = Date.now();
  if (now - lastTouchEnd <= 300) {
    event.preventDefault();
  }
  lastTouchEnd = now;
}, false);

总结

到此这篇关于Android中设置WebView禁止缩放网页的文章就介绍到这了,更多相关WebView禁止缩放网页内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Flutter实现悬浮分组列表功能

    Flutter实现悬浮分组列表功能

    这篇文章主要介绍了Flutter-实现悬浮分组列表,我们将介绍如何使用 Flutter 实现一个带有分组列表的应用程序,我们将通过 CustomScrollView 和 Sliver 组件来实现该功能,需要的朋友可以参考下
    2024-08-08
  • Android Studio 创建自定义控件的方法

    Android Studio 创建自定义控件的方法

    这篇文章主要介绍了Android Studio 创建自定义控件的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06
  • Android编程实现提取网址链接的方法

    Android编程实现提取网址链接的方法

    这篇文章主要介绍了Android编程实现提取网址链接的方法,涉及Android针对字符串的正则匹配操作相关技巧,需要的朋友可以参考下
    2016-10-10
  • Android实现常见的验证码输入框实例代码

    Android实现常见的验证码输入框实例代码

    我们在开发APP的时候经常要遇到输入框,下面这篇文章主要给大家介绍了关于利用Android如何实现常见的验证码输入框的相关资料,文中通过示例代码介绍的非常详细,需要的朋友们可以参考借鉴,下面随着小编来一起学习学习下吧。
    2017-09-09
  • Android仿淘宝详情页面viewPager滑动到最后一张图片跳转的功能

    Android仿淘宝详情页面viewPager滑动到最后一张图片跳转的功能

    需要做一个仿淘宝客户端ViewPager滑动到最后一页,再拖动的时候跳到详情的功能,刚开始我也迷糊了,通过查阅相关资料发现有好多种实现方法,下面小编给大家分享实例代码,感兴趣的朋友一起看看吧
    2017-03-03
  • android实现加载动画对话框

    android实现加载动画对话框

    这篇文章主要为大家详细介绍了android实现加载动画对话框,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-10-10
  • 深入Android SQLite 事务处理详解

    深入Android SQLite 事务处理详解

    本篇文章是对Android中SQLite 事务处理进行了详细的分析介绍。需要的朋友参考下
    2013-05-05
  • Android实现轮播图片效果

    Android实现轮播图片效果

    这篇文章主要为大家详细介绍了Android实现轮播图片效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-12-12
  • Android多线程断点续传下载实现代码

    Android多线程断点续传下载实现代码

    这篇文章主要介绍了Android多线程断点续传下载实现代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • Android实现微信朋友圈图片和视频播放

    Android实现微信朋友圈图片和视频播放

    这篇文章主要为大家详细介绍了Android实现微信朋友圈图片和视频播放,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-05-05

最新评论