通过长按在 Android WebView 中启动缩放

Posted

技术标签:

【中文标题】通过长按在 Android WebView 中启动缩放【英文标题】:Initiate zoom within an Android WebView from a longpress 【发布时间】:2012-05-01 02:27:09 【问题描述】:

我正在寻找一种在双击时复制本机 WebView 缩放但通过长按触发的方法。因为,对于双标签缩放,我希望缩放以触摸点为中心进行缩放,然后能够以编程方式缩小到默认缩放级别。

我在想可能有一种方法可以将双击手势欺骗到长按处理程序中的 WebView 并为其提供长按的坐标,但我无法找到一种方法。

这个可以吗?

【问题讨论】:

【参考方案1】:

根据这篇文章中的信息找到了一个可行的解决方案:

Double tap Programmatically on WebView

我替换了以下内容:

public void simulateDoubleTap()
    
        simulateDoubleTapEvent(0);
        simulateDoubleTapEvent(2);
        simulateDoubleTapEvent(2);
        simulateDoubleTapEvent(1);
        simulateDoubleTapEvent(0);
    

与:

public void simulateDoubleTap()
    
        simulateDoubleTapEvent(MotionEvent.ACTION_DOWN);
        simulateDoubleTapEvent(MotionEvent.ACTION_UP);
        simulateDoubleTapEvent(MotionEvent.ACTION_DOWN);
        simulateDoubleTapEvent(MotionEvent.ACTION_UP);
    

然后在我的 longpress 处理程序中添加了对 simulationDoubleTap() 的调用。这似乎有效 - 但它不是 100% 一致的。可能想在事件之间添加一些小的延迟,看看是否可以消除它。我还注意到,在放大时,单个事件会起作用,但需要两次触发双击才能缩小。这可能是因为我正在使用的手势处理程序或其他一些问题,但通常这似乎可以满足我的需要。

【讨论】:

以上是关于通过长按在 Android WebView 中启动缩放的主要内容,如果未能解决你的问题,请参考以下文章

在android webview中禁用长按

Android webview 去掉页面文字存在的“选中文字”的长按震动效果

Android Studio 第七十六期 - Android webview长按识别二维码

ios中,长按Webview中的图片

通过 WebView (Android Studio) 导航到时,Youtube 在应用程序中启动

Android webview 不应该在长按时显示操作栏