Com.apple.WebKit.WebContent drop 113 error: Не удалось найти указанную службу

Я использую WKWebView для просмотра пользовательского HTML.

  • Независимо от содержимого HTML, при тестировании на реальном устройстве, я получаю следующую ошибку Could not signal service com.apple.WebKit.WebContent: 113: Could not find specified service через 29 секунд после загрузки WKWebView, иногда даже получаю эту ошибку дважды. Очевидно, что это проблема конфигурации. Я проверил файлы cookie, как было предложено в Не удалось выполнить команду com.apple.WebKit.WebContent, однако это не поможет.
  • Еще один вопрос: существует ли список всех кодов ошибок, которые могут появляться в WKWebView

Ответ 1

Наконец-то решена проблема выше. Я получаю ошибки

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

Поскольку я не добавил объект WKWebView к представлению как подпредставление и попытался вызвать -loadHTMLString:baseURL: поверх него. И только после того, как он был успешно загружен, я добавлял его для просмотра подпредставлений - что было совершенно неправильно. Правильное решение моей проблемы:

1. Добавить объект WKWebView для просмотра subviews массива

2. Позвоните -loadHTMLString:baseURL: для недавно добавленного WKWebView

Ответ 2

Я получил эту ошибку, загрузив URL http://, где сервер ответил с переадресацией на https. После изменения URL-адреса я перехожу к WKWebView в https://... он работал.

Ответ 3

Может быть, это совсем другая ситуация, но я всегда получал WebView[43046:188825] Could not signal service com.apple.WebKit.WebContent: 113: Could not find specified service при открытии веб-страницы на симуляторе, когда к нему подключен отладчик., Если я закончу отладчик и снова открою приложение, веб-страница откроется просто отлично. Это не происходит на устройствах.

Потратив целый рабочий день, пытаясь выяснить, что не так, я обнаружил, что если у нас есть фреймворк под названием Preferences, UIWebView и WKWebView не смогут открыть веб-страницу и WKWebView ошибку выше.

Чтобы воспроизвести эту ошибку, просто сделайте простое приложение с WKWebView чтобы показать веб-страницу. Затем создайте новую цель фреймворка и назовите ее " Preferences. Затем импортируйте его в основную цель и снова запустите симулятор. WKWebView не сможет открыть веб-страницу.

Так что это может быть маловероятно, но если у вас есть фреймворк с именем Preferences, попробуйте удалить или переименовать его.

Кроме того, если у кого-то есть объяснение этому, пожалуйста, поделитесь.

Кстати, я был на Xcode 9.2.

Ответ 4

Я тоже столкнулся с этой проблемой при загрузке URL-адреса http в WKWebView в iOS 11, он отлично работает с https.

Что для меня работало, это установка параметра "Транспорт приложений" в файле info.pist, чтобы разрешить суровую нагрузку.

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

Ответ 5

СВИФТ

Хорошо, я сделал это в следующем порядке и не получил никакой ошибки, например, 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)

Сделайте как заказ.

Спасибо

Ответ 6

Мой снова был другим. Я настраивал пользовательский агент так:

    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];

Это приводило к тому, что что-то на веб-странице теряло память Не уверен, почему, но удаление этого решило проблему для меня.

Ответ 7

В моем случае я запускал WKWebView и отображал веб-сайт. Затем (в течение 25 секунд) я освободил WKWebView. Но через 25-60 секунд после запуска WKWebView я получил это сообщение об ошибке "113". Я предполагаю, что система пыталась что-то сигнализировать WKWebView и не могла найти это, потому что это было освобождено.

Исправление было просто оставить WKWebView выделенным.

Ответ 8

Возможно, приведенный ниже метод может быть причиной, если вы установите его

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

заканчивается

decisionHandler(.cancel)

по умолчанию navigationAction.request.url

Надеюсь, что это работает!

Ответ 9

В OS X необходимо убедиться, что возможности Sandbox настроены правильно, чтобы использовать WKWebView.

Эта ссылка прояснила мне это: https://forums.developer.apple.com/thread/92265

Делимся в надежде, что это кому-нибудь поможет.


Выберите файл проекта в навигаторе, выберите "Возможности", а затем убедитесь, что:
* App Sandbox выключен,
ИЛИ ЖЕ
* Тестовая среда приложения включена и исходящие соединения (клиент) проверены.

Ответ 10

Просто для справки других, у меня, похоже, тоже возникла эта проблема, если я попытался загрузить URL, в конце которого были пробелы (его извлекали из пользовательского ввода).

Ответ 11

У меня была эта проблема у меня в iOS 12.4 при вызове defineJavascript. Я решил это, заключив вызов в DispatchQueue.main.async { }