【问题标题】:High Sierra WebView blocks anchor tag navigationHigh Sierra WebView 阻止锚标记导航
【发布时间】:2018-05-04 07:23:21
【问题描述】:

我有一个在 WebView 中显示信息的 Mac 应用程序。现在和 Objective-C 中的一个相当老的应用程序,我很快就忘记了。

WebView 包含允许在页面内导航的锚标记,可以通过单击所显示页面中的链接或单击 UI 中的选项卡将 Javascript 发送到 WebView。在 High Sierra 中,这不再有效,尽管它没有显示错误。

看来我需要实现isKeyExcludedFromWebScript:,但我的尝试失败了。

我需要对 WebView 进行子类化吗?将 isKeyExcludedFromWebScript: 和 isSelectorExcludedFromWebScript: 放在包含 WebView 的视图控制器中不起作用 - 它们永远不会被调用。

如果有人有任何建议或示例,我将不胜感激。 恐怕答案是升级应用程序以使用 WKWebView,但我希望能快速解决,直到我有时间这样做。

【问题讨论】:

    标签: macos webview


    【解决方案1】:

    在这里回答我自己的问题,因为我已经制定了解决方案。

    问题是我正在将一个 HTML 字符串加载到 WebView 中,当我尝试使用内部导航链接时,它没有用作前缀的基本 URL,因此锚导航无法正常工作。

    在 High Sierra 之前它曾经工作过,所以 WebView 的运作方式肯定有一些新的东西。

    解决方案是将 HTML 字符串保存到临时文件,并让 WebView 加载该文件的 URL,而不是直接加载字符串。

    这适用于 WebView 和 WKWebView。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-05-30
      • 2022-08-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-05
      • 1970-01-01
      相关资源
      最近更新 更多