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

iOS 16.1下自定义键盘扩展WKWebView内容无法加载求助

iOS 16.1真机上键盘扩展WKWebView白屏问题

我有一个基础键盘扩展,在iOS 15系统下运行正常,升级到iOS 16.1后出现异常。该键盘包含一个WKWebView,用于渲染带文本的基础HTML页面。在iOS 16模拟器上所有内容加载正常,但真机运行时出现白屏(WKWebView已加载但内容未显示),同时产生大量错误日志(日志取自「备忘录」应用中测试键盘的过程)。

键盘扩展代码

func makeViewConfiguration() -> WKWebViewConfiguration
{
    let configuration = WKWebViewConfiguration()
    let dropSharedWorkersScript = WKUserScript(source: "delete window.SharedWorker;", injectionTime: WKUserScriptInjectionTime.atDocumentStart, forMainFrameOnly: false)
    configuration.userContentController.addUserScript(dropSharedWorkersScript)
    return configuration
}

override func viewDidLoad() {
    super.viewDidLoad()
    popup = UIView()
    popup.autoresizingMask = [.flexibleWidth, .flexibleHeight]
    
    webView = WKWebView(frame: CGRect(x:100, y:100, width:100, height:350), configuration: makeViewConfiguration())
    webView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
    webView.frame = CGRect(origin: CGPoint.zero, size: popup.frame.size)
    webView.backgroundColor = UIColor.white
    webView.uiDelegate = self

    let contentController = webView.configuration.userContentController
    contentController.add(self, name: "toggleMessageHandler")

    popup.addSubview(webView)

    
    webView.loadHTMLString("<html><body><p>Hello!</p></body></html>", baseURL: nil)
    
    popup.backgroundColor = UIColor.cyan;
   
    self.view.addSubview(popup)
   
}

已尝试的解决方案(无改善)

  • 禁用Shared Workers
  • 开启RequestOpenAccess
  • 开启AllowArbitraryLoads

内容的提问来源于stack exchange,提问作者Vlad Constantinescu

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 23:35:23