Android - 在Webview中使用OkHttp

时间:2014-03-14 17:21:23

标签: android webview webviewclient okhttp

是否可以将okHttp用作webviewclient?

mWebView.setWebViewClient(new OkHttpClient());

这给了我一个错误......

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

有什么建议吗?

2 个答案:

答案 0 :(得分:6)

如果您要求的话,WebView不支持切换网络堆栈。根据版本,它使用Chrome网络堆栈的快照,或者用于预先HC设备的WebKit网络堆栈。

理论上你可以通过shouldInterceptRequest连接OkHttp,但我不建议这样做 - 你无法将标题传递给WebView,你必须手动提取和发送cookie它会几乎可以肯定的是,因为KK之前的WebView一次只能读取一个截获的请求。

答案 1 :(得分:2)

考虑OkHttpClient延伸Object并实施CloneableURLStreamHandlerFactoryWebView.setWebViewClient()只接受WebViewClient(反过来,延伸Object只有{{1}})没有直接允许这种情况的公共类。

您可能有幸找到其他尝试这样做的人,但OkHttp似乎没有直接支持这种类型的插入兼容性。