如果没有触摸 html 元素,如何忽略或传递 WKWebView 上的触摸输入

How to ignore or pass through touch input on WKWebView if no html element is touched

提问人:Stoffel 提问时间:11/2/2023 最后编辑:Stoffel 更新时间:11/2/2023 访问量:31

问:

我目前正在尝试在其他一些视图之上有一个 WKWebView,并且两者都是可交互的。对于 WebView,我希望按钮等可单击,但(透明)背景上的触摸输入将传递到底层视图。

我能够开始工作的一件事是获取像素(使用 self.layer.render),然后检查它是否透明并覆盖点方法,如下所示:

    public override func point(inside point: CGPoint, with event: UIEvent?) -> Bool {
        return !isTransparent(point: point)
    }

Смотритетакже: iOS WKWebView 从点获取 RGBA 像素颜色

这确实有效,但感觉非常昂贵。

另一种方法是使用 JavaScript(使用 webView.evaluateJavaScript)让它告诉我是否在加载的页面中选择了某些内容。但是,当我在 point 或 hitTest 覆盖中执行此操作时,结果总是过时的,因为它是异步的。但是,当我尝试等待结果(使用信号量)时,它只是冻结了应用程序。

有没有更好、更清洁的方法来实现这一目标?

iOS Swift 输入 wkwebview

评论


答: 暂无答案