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 { }