WKWebView 正在尝试在后台运行,尽管它已关闭并且应该被处理

Kir*_* S. 9 ios swift wkwebview

我在应用程序的 UIViewController 容器中有一个简单的 WKWebView。用户将使用 WKWebView 打开这个 UIViewController 容器,然后最终将使用导航“返回”项关闭它。导航项配置容器和WKWebView。它有效,但在每次关闭时,我都会在日志中看到以下错误:

第一对错误:

[断言] 获取断言时出错:<Error Domain=RBSAssertionErrorDomain Code=3 “目标未运行或缺少所需的目标权利” UserInfo={RBSAssertionAttribute=<RBSDomainAttribute| domain:"com.apple.webkit" name:"Background" sourceEnvironment:"(null)">, NSLocalizedFailureReason=目标未运行或缺少所需的目标权限}>

[ProcessSuspension] 0x7f8f9d404210 - ProcessAssertion:无法获取 PID 为 27176 的进程的 RBS 后台断言“WebProcess 后台断言”,错误:错误域=RBSAssertionErrorDomain 代码=3“目标未运行或缺少所需的目标权利” UserInfo={RBSAssertionAttribute= <RBS域属性| domain:"com.apple.webkit" name:"Background" sourceEnvironment:"(null)">, NSLocalizedFailureReason=目标未运行或缺少所需的目标权限}

第二对错误:

[断言] 获取断言时出错:<Error Domain=RBSAssertionErrorDomain Code=2 "指定的目标进程不存在" UserInfo={NSLocalizedFailureReason=指定的目标进程不存在}>

[ProcessSuspension] 0x7f8f9d005c30 - ProcessAssertion:无法获取 PID 为 27176 的进程的 RBS 后台断言“WebProcess 后台断言”,错误:错误域=RBSAssertionErrorDomain Code=2“指定的目标进程不存在” UserInfo={NSLocalizedFailure targetReason=Specified不存在}

第三对错误:

无法向服务 com.apple.WebKit.WebContent 发出信号:113:找不到指定的服务

无法向服务 com.apple.WebKit.Networking 发出信号:113:找不到指定的服务

WKWebView 是从容器 UIViewController 的viewDidDisappear(也尝试将它移动到viewWillDisappear,这没有区别)以下列方式处理:

webView.stopLoading()
webView.configuration.userContentController.removeScriptMessageHandler(forName: "...")
webView.navigationDelegate = nil
webView.scrollView.delegate = nil
webView = nil
Run Code Online (Sandbox Code Playgroud)

这些错误似乎没有负面影响。但我想了解:我是否缺少对 WKWebView 处理的一些清理?为什么它试图“进入背景”?

小智 12

我面临着同样的问题,并发现了这两个有趣的线程:

  1. https://developer.apple.com/forums/thread/112095,Apple支持人员声称这些警告(例如无法发出信号服务 com.apple.WebKit.Networking: 113: 找不到指定的服务)不是你应该担心的事情
  2. Xcode 8、iOS 10 - “启动 WebFilter 进程日志记录”这是帮助我消除这些警告的唯一解决方案。基本上,你应该设置 OS_ACTIVITY_MODE =禁用

  • 这是一个很糟糕的答案(来自苹果公司的人)...如果你不应该担心,为什么首先要警告它呢? (22认同)
  • 这适用于 Xcode 13 beta 5 和 iOS 15。同样适用于 iOS 12 和 13。唯一的版本问题是 iOS 14。 (3认同)
  • 这在 iOS 14 中仍然发生..并且 webview 将无法加载 (2认同)
  • 这个话题有什么答案吗? (2认同)