【问题标题】:WKWebView tapping on a ad doesn't fire delegate methodWKWebView 点击广告不会触发委托方法
【发布时间】:2023-03-03 15:23:01
【问题描述】:

我正在使用WKWebView,并且我有导航(请求/响应)的委托方法,并且一切正常。出于某种原因,有些广告根本不会触发该功能。知道为什么吗?我什至无法检查 URL 以了解发生了什么。

我只得到WKContentView[@] set up: @ pid: @ MACH_PORT 如果得到一个带有标题的弹出菜单,则在模拟器上: JavaScript 和选项:打开/取消

func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void)

我可以在配置中使用一些东西吗?

谢谢

【问题讨论】:

  • 你可以添加观察者webView.addObserver(self, forKeyPath: "URL", options: [.new, .old], context: nil)然后override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {print(change?[.newKey],change?[.oldKey])}
  • 由于某种原因它没有被观察者触发,我尝试了不同的解决方案来触发它
  • @canister_exister 我设法通过类似的解决方案获得了网址,因此感谢您的帮助。现在我只需要弄清楚为什么它没有触发委托方法。
  • decidePolicyFor 并不总是适用于重定向

标签: ios swift wkwebview


【解决方案1】:

我认为您应该在名为 window.webkit.messageHandlers.yourMethodName.postMessage("something") 的 HTML 文件中设置的方法中添加一些内容

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-04
    相关资源
    最近更新 更多