有没有办法拦截Android WebView中的重定向请求?似乎没有调用shouldInterceptRequest(WebView,WebResourceRequest)!
我希望通过以下方式自动捕获所有网络视图请求中的令牌过期时间:
第2项工作正常,但第3项失败的情况非常严重,因为似乎没有为重定向调用shouldInterceptRequest,这看起来确实是错误的 - 特别是因为没有记录,而且WebResourceRequest API会让人相信一个人甚至可以检查请求是否是重定向。
我很乐意回复401而不是使用重定向 - 但我认为无法使用更新的令牌“原位”重试请求,除非请求恰好是顶级页面请求。
我想我可以尝试使用旧的“in page”重定向而不是302来查看它是否更好,但即使它确实如此,真的是黑客。
(请注意,这显然与Android WebView, how to handle redirects in app instead of opening a browser不同 - 因为我已经有了一个webview,并试图拦截和操纵重定向请求。)
答案 0 :(得分:0)
在Kotlin上进行拦截的示例:
webView.webViewClient = object: WebViewClient() {
override fun shouldOverrideUrlLoading(view: WebView, url: String): Boolean {
if (url.startsWith("https://example.com")) {
// ...
return false
}
return super.shouldOverrideUrlLoading(view, url)
}
}