首页 > 解决方案 > 在 WebView 中截取页面呈现的最佳点?

问题描述

我正在编写一个使用 WebView 的应用程序。不幸的是,我们正在加载的页面需要复杂的身份验证,所以我们喜欢

  1. 拦截登录页面。对其进行处理(以便存储 cookie 等)
  2. 不要渲染它
  3. POST 正确的用户凭据,而无需用户在 webView 中键入它们。

我使用 aWebViewClient和覆盖运行它override fun onPageCommitVisible(view: WebView?, url: String?)

在里面我检查 URL 是否是登录表单,并webView.postUrl用数据做一个帖子。

它可以工作,但登录页面会短暂显示。有没有更好的方法在渲染之前拦截正在渲染的页面,然后再做一个load

谢谢

标签: androidhttppostwebview

解决方案


我想你可以看看shouldOverrideUrlLoading()回调。

您将能够在页面显示之前捕获 url。

https://developer.android.com/reference/android/webkit/WebViewClient.html#shouldOverrideUrlLoading(android.webkit.WebView,%20android.webkit.WebResourceRequest)


推荐阅读