gpt4 book ai didi

android - 如何处理 API21 中的 shouldInterceptRequest 参数更改?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:15:54 27 4
gpt4 key购买 nike

在 API21 中,Google 修改了 shouldInterceptRequest 方法以使用 WebResourceRequest 请求 而不是 String url。有什么方法可以编写一个扩展 WebViewClient 的通用类并处理这两种方法吗?我的最低 API 版本是 18。

谢谢克里斯蒂安

最佳答案

Google modified shouldInterceptRequest method to use WebResourceRequest request instead of String url

不,他们添加了第二个 shouldInterceptRequest() 方法。两者都在 API 级别 21+ 中可用; String 变体在 API 级别 11+ 上可用。虽然 String 已被标记为已弃用,但为了向后兼容,String 变体应该会在相当长的一段时间内得到支持。

Is there any way I could write a generic class extending WebViewClient and handle both methods?

shouldInterceptRequest()WebResourceRequest 版本的内置实现只是调用 shouldInterceptRequest()< 的 String 实现:

public WebResourceResponse shouldInterceptRequest(WebView view,
WebResourceRequest request) {
return shouldInterceptRequest(view, request.getUrl().toString());
}

(来自 the source code 截至目前)

所以,你有两个选择:

  1. 如果您不需要 WebResourceRequest,只需覆盖 String 版本,它将用于所有相关的 API 级别。

  2. 覆盖两者,知道 WebResourceRequest 版本将在 API 级别 21+ 上使用,而 String 版本将在 API 级别 11-20 上使用。

关于android - 如何处理 API21 中的 shouldInterceptRequest 参数更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32669683/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com