カスタムHTMLの表示にWKWebViewを使用しています。
Could not signal service com.Apple.WebKit.WebContent: 113: Could not find specified service
が表示されます。このエラーを2回受け取ります。明らかに、これは構成の問題です。 サービスcom.Apple.WebKit.WebContentを通知できませんでした で提案されているようにCookieをチェックしましたが、役に立たない最後に、上記の問題を解決しました。エラーが発生しました
Could not signal service com.Apple.WebKit.WebContent: 113: Could not find specified service
WKWebViewオブジェクトをサブビューとしてビューに追加しておらず、その上で-loadHTMLString:baseURL:
を呼び出そうとしたためです。そして、それが正常にロードされた後にのみ、ビューのサブビューに追加していました-これはまったく間違っていました。私の問題の正しい解決策は次のとおりです。
1。追加WKWebViewビューのsubviews
配列にオブジェクト
2。最近追加された-loadHTMLString:baseURL:
を呼び出すWKWebView
サーバーがhttpsへのリダイレクトで応答したhttp:// URLをロードすると、このエラーが発生しました。 URLを変更した後、WKWebViewにhttps:// ...を渡しました。
まったく別の状況かもしれませんが、デバッガーをアタッチした状態でシミュレーターでWebページを開くと、常にWebView[43046:188825] Could not signal service com.Apple.WebKit.WebContent: 113: Could not find specified service
が表示されます。デバッガーを終了してアプリを再度開くと、Webページが正常に開きます。これはデバイスでは発生しません。
何が問題なのかを把握しようとして1日中仕事をした後、Preferences
、UIWebView
、およびWKWebView
という名前のフレームワークがある場合、Webページを開くことができず、上記のエラーがスローされます。
このエラーを再現するには、WKWebView
を使用してWebページを表示する単純なアプリを作成します。次に、新しいフレームワークターゲットを作成し、Preferences
という名前を付けます。次に、それをメインターゲットにインポートし、シミュレータを再度実行します。 WKWebView
はWebページを開くことができません。
したがって、可能性は低いかもしれませんが、Preferences
という名前のフレームワークがある場合は、削除するか名前を変更してみてください。
また、誰かがこれについて説明をしている場合は、共有してください。
ところで、私はXcode 9.2を使用していました。
IOS 11でWKWebViewに「http」URLをロードするときに、この問題に直面しましたが、httpsで正常に動作しています。
私のために働いたのは、info.pistファイルにアプリトランスポート設定を設定して、任意の負荷を許可することでした。
<key>NSAppTransportSecurity</key>
<dict>
<!--Not a recommended way, there are better solutions available-->
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
スイフト
さて、次の順序でこれを実行しましたが、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)
注文通りに行います。
ありがとう
私の場合、WKWebViewを起動してWebサイトを表示していました。次に(25秒以内に)WKWebViewの割り当てを解除しました。しかし、WKWebViewの起動後25〜60秒で、この「113」エラーメッセージが表示されました。システムがWKWebViewに何かを通知しようとしており、割り当てが解除されたためにそれを見つけることができなかったと思います。
修正は、単にWKWebViewを割り当てたままにすることでした。
私もまた違った。私は次のようにユーザーエージェントを設定していました:
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];
これにより、Webページ上の何かがフリークし、メモリがリークしていました。理由はわかりませんが、これを削除することで問題が整理されました。
OS Xでは、WKWebViewを使用するためにSandbox機能が適切に設定されていることを確認する必要があります。
このリンクは私にこれを明確にしました: https://forums.developer.Apple.com/thread/92265
それが誰かを助けることを願って共有。
ナビゲータでプロジェクトファイルを選択し、機能を選択して、次のことを確認します。
*アプリサンドボックスはオフです。
または
*アプリサンドボックスがオンで、送信接続(クライアント)がチェックされています。
おそらく以下の方法が原因である可能性があります
func webView(_ webView: WebView!,decidePolicyForNavigationAction actionInformation: [AnyHashable : Any]!, request: URLRequest!, frame: WebFrame!, decisionListener listener: WebPolicyDecisionListener!)
で終わる
decisionHandler(.cancel)
デフォルトのnavigationAction.request.url
うまくいきますように!
EvaluateJavascriptを呼び出すときに、iOS 12.4でこの問題が発生しました。 DispatchQueue.main.async { }
で呼び出しをラップすることで解決しました
他の参考のために、最後に空白が含まれている(ユーザー入力からプルされていた)URLをロードしようとすると、この問題もあるようです。