Android – используйте OkHttp с Webview

Можно ли использовать okHttp как webviewclient?

Т.е. mWebView.setWebViewClient(new OkHttpClient());

Это дает мне ошибку …

The method setWebViewClient(WebViewClient) in the type WebView is not applicable for the arguments (OkHttpClient)

Какие-либо предложения?

WebView не поддерживает выключение сетевых стеков, если это то, о чем вы просите. В зависимости от версии он использует моментальный снимок сетевого стека Chrome или для устройств pre-HC сетевой стек WebKit.

Теоретически вы можете подключить OkHttp через shouldInterceptRequest, но я не рекомендую это делать – у вас не будет возможности передавать заголовки в WebView, вам придется извлекать и отправлять файлы cookie вручную, и это почти наверняка будет медленнее, KK WebView считывает только один перехваченный запрос за раз.

Учитывая, что OkHttpClient расширяет Object и реализует Cloneable и URLStreamHandlerFactory , а WebView.setWebViewClient() принимает только WebViewClient (который, в свою очередь, расширяет только Object ), нет общих классов, которые позволяют это напрямую.

Возможно, вам повезло найти других людей, пытающихся это сделать, но, похоже, для OkHttp не существует прямой поддержки для такого типа совместимости.