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

问题描述 投票:0回答:2

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

第一对错误:

[断言]获取断言时出错:,NSLocalizedFailureReason=目标未运行或缺少所需的目标权利}>

[ProcessSuspension] 0x7f8f9d404210 - ProcessAssertion:无法为 PID 27176 的进程获取 RBS 后台断言“WebProcess 后台断言”,错误:错误域=RBSAssertionErrorDomain 代码=3“目标未运行或缺少所需的目标权利”UserInfo={RBSAssertionAttribute =,NSLocalizedFailureReason=目标未运行或缺少所需的目标权利}

第二对错误:

[断言] 获取断言时出错:

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

第三对错误:

无法向服务 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

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

ios swift wkwebview
2个回答
12
投票

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

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

0
投票
1)goto MenuBar and find product 

-> Goto Menu menu 
-> Scheme 
-> Edit Scheme 
-> It comes up with popup 
-> Select "Run" -
-> Select "Arguments" 
-> Then Environment Variables 
-> after this click on "+" button set "OS_ACTIVITY_MODE = disable" 
© www.soinside.com 2019 - 2024. All rights reserved.