You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Swift WKWebView获取标题异常:阿拉伯语多词标题返回空

WKWebView获取阿拉伯语多单词标题返回空值的问题与临时修复

问题描述

我在使用WKWebView获取网页标题时遇到了一个奇怪的异常情况:

  • 网页标题为英文时,通过webView.title获取完全正常
  • 标题是单个阿拉伯语单词时,也能正常读取到内容
  • 但标题是阿拉伯语且包含2个及以上单词时,webView.title会返回空值

附相关场景截图说明:

  • 英文标题正常显示
  • 单个阿拉伯语单词标题正常显示
  • 两个阿拉伯语单词标题返回空值

问题复现代码

最初触发问题的代码如下:

func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
    let webTitle:String = webView.title!
    print("Title: \(webTitle)")
    self.title = webTitle
}

临时修复方案

正如@EmilioPelaez所说,这看起来是WKWebView的一个Bug。我参考了@the4kman的建议,改用evaluateJavaScript直接读取document.title的方式绕过了这个问题,修复后的代码如下:

func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
    let javascript = "document.title\n"
    webView.evaluateJavaScript(javascript) { (result, error) -> Void in
        if error == nil {
            self.title = String(describing: result!)
        }
    }
}

希望官方能尽快修复这个Bug。

内容的提问来源于stack exchange,提问作者Mohammed Yousuf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 06:34:56