9

是否可以使用 okHttp 作为 webviewclient?

IEmWebView.setWebViewClient(new OkHttpClient());

这给了我一个错误...

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

有什么建议么?

4

2 回答 2

7

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

从理论上讲,您可以通过 shouldInterceptRequest 连接OkHttp,但我不建议这样做 - 您无法将标头传递给 WebView,您必须手动提取和发送 cookie,而且它几乎肯定会因为 pre- KK WebView 一次只读取一个拦截的请求。

于 2014-03-14T17:55:56.497 回答
2

考虑到OkHttpClientextendsObject和 implements Cloneableand URLStreamHandlerFactory, andWebView.setWebViewClient()只接受 a WebViewClient(反过来, extends only Object)没有公共类可以直接允许这样做。

您可能有一些运气来寻找其他尝试这样做的人,但 OkHttp 似乎没有直接支持这种类型的插入式兼容性。

于 2014-03-14T17:38:10.993 回答