【问题标题】:com.apple.WebKit.WebContent drops 113 error: Could not find specified servicecom.apple.WebKit.WebContent drop 113 错误:找不到指定的服务
【发布时间】:2017-11-19 00:55:06
【问题描述】:

我正在使用 WKWebView 来查看自定义 HTML。

  • 不管 HTML 内容如何,​​在真机上测试时,我在 WKWebView 内容加载后 29 秒内收到以下错误Could not signal service com.apple.WebKit.WebContent: 113: Could not find specified service,有时我什至两次收到此错误。显然,这是一个配置问题。我已经按照Could not signal service com.apple.WebKit.WebContent 的建议检查了 cookie,但是没有帮助
  • 另一个问题是WKWebView中是否存在所有可能弹出的错误代码列表

【问题讨论】:

  • 嗨@levgen,你找到解决这个问题的方法了吗?
  • @DragisaDragisic 请参阅下面的评论
  • 您好,我在使用 Unity 生成的项目时遇到此错误,特别是在尝试初始化广告包时。有谁知道这可能是什么原因造成的?
  • 添加“http://”可以解决您的问题。

标签: ios webkit wkwebview


【解决方案1】:

只需检查您传递给加载请求的 URL,当我来到这个页面时,我收到了同样的错误,后来检查我是从“www”开始获取 URl 后来我添加了 "https://" ,它对我有用

【讨论】:

    【解决方案2】:

    我几乎尝试了所有方法,我的解决方案很简单,将 MacOS 更新到最新版本,并将 Xcode 更新到最新版本,这样错误就消失了,不再出现白屏。

    【讨论】:

      【解决方案3】:

      删除/评论

      - (void)viewWillAppear:(BOOL)animated {[super viewWillAppear:YES];}
      

      函数为我解决了这个问题。

      XCode (11.3.1)

      【讨论】:

        【解决方案4】:

        我在 iOS 12.4 中调用 evaluateJavascript 时遇到了这个问题。我通过将调用包装在 DispatchQueue.main.async { }

        中解决了它

        【讨论】:

        • 我在哪里可以写.. 我三通但不播放视频
        • DispatchQueue.main.async { self.wkWebView.loadHTMLString("国王万岁

          ", baseURL: nil) }
        【解决方案5】:

        仅供参考,如果我尝试加载末尾有空格的 URL(从用户输入中提取),我似乎也遇到了这个问题。

        【讨论】:

          【解决方案6】:

          在 OS X 上,必须确保正确设置沙盒功能才能使用 WKWebView。

          这个链接让我明白了这一点: https://forums.developer.apple.com/thread/92265

          分享希望对大家有所帮助。


          在导航器中选择项目文件,选择功能,然后确保:
          * 应用沙盒已关闭,

          * 应用沙盒已打开,并且已检查传出连接(客户端)。

          【讨论】:

          • 包括实际答案,而不是仅仅链接到它。
          【解决方案7】:

          如果您将其设置为以下方法,则可能是原因

          func webView(_ webView: WebView!,decidePolicyForNavigationAction actionInformation: [AnyHashable : Any]!, request: URLRequest!, frame: WebFrame!, decisionListener listener: WebPolicyDecisionListener!) 
          

          结尾
          decisionHandler(.cancel)
          

          默认navigationAction.request.url

          希望它有效!

          【讨论】:

            【解决方案8】:

            在我的例子中,我正在启动一个 WKWebView 并显示一个网站。然后(在 25 秒内)我释放了 WKWebView。但是在启动 WKWebView 25-60 秒后,我收到了这个“113”错误消息。我假设系统试图向 WKWebView 发出信号,但由于它已被释放而找不到它。

            解决方法只是让 WKWebView 保持分配状态。

            【讨论】:

            • 这似乎不是一个干净的解决方案。即使我显然不再需要它,我也不希望我的 WKWebView 仍然存在,因为它正在使用资源并消耗大量内存。
            • 我认为这样的事情叫做内存泄漏。
            • 可能是内存泄漏——但这让我发疯了。我在 App Delegate 中只分配/初始化一个 WKWebView 对象,从任何视图引用该实例并将其添加为子视图。奇迹般有效。我还将其框架设置为视图中隐藏的 UILabel 的框架,以便我可以使用所有 Xib 调整大小。
            【解决方案9】:

            也许这是一个完全不同的情况,但是当我在模拟器上打开一个网页并附加调试器时,我总是得到WebView[43046:188825] Could not signal service com.apple.WebKit.WebContent: 113: Could not find specified service 。如果我结束调试器并再次打开应用程序,网页就会正常打开。这不会在设备上发生。

            花了一整天的时间试图找出问题所在,我发现如果我们有一个名为 PreferencesUIWebViewWKWebView 的框架将无法打开网页并会抛出上面的错误。

            要重现此错误,只需使用WKWebView 制作一个简单的应用程序来显示网页。然后创建一个新的框架目标并将其命名为Preferences。然后将其导入主目标并再次运行模拟器。 WKWebView 将无法打开网页。

            因此,这可能不太可能,但如果您有一个名为 Preferences 的框架,请尝试删除或重命名它。

            另外,如果有人对此有解释,请分享。

            顺便说一句,我使用的是 Xcode 9.2。

            【讨论】:

            • 我刚遇到这种情况,只是在没有 Xcode 调试会话的情况下在模拟器中运行就让它消失了。没有 Preferences 框架或其他任何东西,但它看起来确实与 WKWebView 中的 cookies/localStorage 问题有关。
            【解决方案10】:

            我的又不一样了。我是这样设置用户代理的:

                NSString *jScript = @"var meta = document.createElement('meta'); meta.setAttribute('name', 'viewport'); meta.setAttribute('content', 'width=device-width'); document.getElementsByTagName('head')[0].appendChild(meta);";
                WKUserScript *wkUScript = [[WKUserScript alloc] initWithSource:jScript injectionTime:WKUserScriptInjectionTimeAtDocumentEnd forMainFrameOnly:YES];
            

            这导致网页上的某些内容出现异常并泄漏内存。不知道为什么,但删除它为我解决了这个问题。

            【讨论】:

            • 删除 JavaScript 注入为我解决了这个问题....但现在我需要找到解决方法,因为我需要 JS
            【解决方案11】:

            终于解决了上面的问题。我收到错误

            • Could not signal service com.apple.WebKit.WebContent: 113: Could not find specified service

            由于我没有在视图上添加 WKWebView 对象作为子视图并尝试在其顶部调用-loadHTMLString:baseURL:。只有在它成功加载后,我才将它添加到视图的子视图中——这是完全错误的。我的问题的正确解决方案是:

            1.WKWebView 对象添加到视图的subviews 数组中

            2. 致电-loadHTMLString:baseURL: 获取最近添加的WKWebView

            【讨论】:

            • @Nikita,对你有帮助吗?请分享您的经验和环境。状况。我之所以问,是因为我打算删除此评论,因为它不能解决 100% 的情况,为什么会弹出此错误...
            • 日志本身每次都会在不同的情况下发生;我还没有找到一致的日志模式;但是将 webview 添加到视图层次结构的事实确实有助于加载所有请求。我有完全相同的情况 - 在加载之前没有添加要查看的 webview;所以现在我将它作为隐藏添加到 keywindow 中,以便它位于视图层次结构中,然后,当它加载时,我将它添加到它应该在的位置并禁用隐藏属性;
            • 我按照您所说的顺序执行了正确的操作,但我仍然收到错误消息。我注意到它发生的那一刻对我来说似乎很随机......就像有时它发生在我已经解雇了拥有 WebView 的 VC 之后,而其他时候它发生在我加载它时......你是否已经想到了其他任何事情出去?
            • 谢谢你这也是我正在做的,这完全解决了问题!
            • 请我从电容器应用程序(离子 5)中执行“将 WKWebView 对象添加到视图的子视图数组”
            【解决方案12】:

            SWIFT

            好吧,我按以下顺序执行此操作,之后没有收到类似Could not signal service com.apple.WebKit.WebContent: 113: Could not find specified service 的任何错误,以下代码也可能对您有所帮助。

            webView = WKWebView(frame: self.view.frame)
            self.view.addSubview(self.view.webView)
            webView.navigationDelegate = self
            webView.loadHTMLString(htmlString, baseURL: nil)
            

            按顺序做。

            谢谢

            【讨论】:

              【解决方案13】:

              在 iOS 11 的 WKWebView 中加载“http”网址时,我也遇到了这个问题,它在 https 上运行良好。

              对我有用的是在 info.pist 文件中设置应用程序传输设置以允许任意加载。

              <key>NSAppTransportSecurity</key>
                  <dict>
                      <!--Not a recommended way, there are better solutions available-->
                      <key>NSAllowsArbitraryLoads</key>
                      <true/>
                  </dict>
              

              【讨论】:

              【解决方案14】:

              我在加载 http:// URL 时遇到此错误,服务器在该 URL 中回复了重定向到 https。在将我传递给 WKWebView 的 URL 更改为 https://... 之后,它起作用了。

              【讨论】:

              • 谢谢!我正在调试并在我正在使用的测试 URL 上留下了“s”。这为我修复了它...
              • 在我的情况下 http:// 也可以
              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2017-09-11
              • 2014-03-29
              • 1970-01-01
              • 2018-09-29
              • 2017-05-06
              • 2015-12-22
              • 1970-01-01
              相关资源
              最近更新 更多