我正在使用带有 xyz URL 的 WebView。提交凭据(用户名、密码)以登录页面并转到仪表板。得到特别的回应。我的问题是如何在我的 Android 应用程序上获得该响应。
使用工具:Android studio、Java
提供登录信息并登录后,您可以使用shouldOverrideUrlLoading函数拦截WebView所做的URL更改,以便从中检索答案。以下是如何实现的详细说明:
在配置了 WebView 的 Android 项目中打开 Java 文件。
通过扩展WebViewClient类并覆盖shouldOverrideUrlLoading函数,您可以创建一个WebViewClient。
可以通过 shouldOverrideUrlLoading 函数检查已加载页面的 URL。当您看到 URL 已移至仪表板或具有您正在搜索的特定响应时,您可以记录答案或执行任何其他所需的操作。
这是代码示例:
import android.webkit.WebResourceRequest;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class MyWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
// Get the URL of the current request
String url = request.getUrl().toString();
// Check if the URL contains the response you're looking for
if (url.contains("dashboard")) {
// .....
return true;
}
// Allow other URLs to load normally
return super.shouldOverrideUrlLoading(view, request);
}
}
将此自定义 WebViewClient 设置为 Activity 中的 WebView:
WebView webView = findViewById(R.id.webView);
webView.setWebViewClient(new MyWebViewClient());
通过此配置,当 WebView 导航到包含“仪表板”的 URL 或到达所需的响应页面时,您可以执行正确的操作来提取数据或在 Android 应用程序内执行任何其他操作。
如果您需要从网页中提取特定信息或启动特定操作,请记住 JavaScript 交互必须在 WebView 内处理。要在 WebView 中运行 JavaScript 代码,请在 shouldOverrideUrlLoading 方法中使用评估Javascript 函数。