有没有办法拦截安卓WebView中的重定向请求?shouldInterceptRequest(WebView,WebResourceRequest)似乎没有被调用!
我希望通过以下方式自动捕获所有web视图请求中的令牌过期:
第2项工作正常,但是第3项失败得很厉害,因为shouldInterceptRequest似乎没有被调用重定向,这似乎真的是错误的--特别是因为这还没有文档化,而且WebResourceRequest API会让人相信,甚至可以检查请求是否是重定向。
我很乐意回复401,而不是使用重定向--但我看不出用更新的令牌“原地”重试请求的方法,除非请求恰好是顶级页面请求。
我想我可以尝试旧的“页面中”重定向,而不是302,看看它是否更好,但即使这样做了,这是一个真正的黑客。
(请注意,这显然是一个与Android WebView, how to handle redirects in app instead of opening a browser不同的问题-因为我已经有了一个and视图,并且正在尝试拦截和操作重定向请求。)
发布于 2019-12-09 10:49:05
截取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)
}
}https://stackoverflow.com/questions/45883426
复制相似问题