Android - 将 OkHttp 与 Webview 一起使用
Posted
技术标签:
【中文标题】Android - 将 OkHttp 与 Webview 一起使用【英文标题】:Android - Use OkHttp with Webview 【发布时间】:2014-04-20 03:24:57 【问题描述】:可以用okHttp作为webviewclient吗?
即mWebView.setWebViewClient(new OkHttpClient());
这给了我一个错误...
The method setWebViewClient(WebViewClient) in the type WebView is not applicable for the arguments (OkHttpClient)
有什么建议吗?
【问题讨论】:
【参考方案1】:如果您要求的话,WebView 不支持切换网络堆栈。根据版本,它使用 Chrome 网络堆栈的快照,或者对于 HC 之前的设备,使用 WebKit 网络堆栈。
理论上您可以通过shouldInterceptRequest 连接 OkHttp,但我不建议这样做 - 您无法将标头传递给 WebView,您必须手动提取和发送 cookie,而且几乎可以肯定速度较慢,因为 KK 之前的 WebView 一次只读取一个拦截的请求。
【讨论】:
【参考方案2】:考虑到OkHttpClient
扩展Object
并实现Cloneable
和URLStreamHandlerFactory
,而WebView.setWebViewClient()
只接受WebViewClient
(反过来,它只扩展Object
)没有公共类允许直接这个。
您可能有一些运气可以搜索其他尝试这样做的人,但 OkHttp 似乎没有直接支持这种类型的插入式兼容性。
【讨论】:
以上是关于Android - 将 OkHttp 与 Webview 一起使用的主要内容,如果未能解决你的问题,请参考以下文章