如何处理 Android Studio 应用程序的浏览器登录响应

问题描述 投票:0回答:1

我正在使用带有 xyz URL 的 WebView。提交凭据(用户名、密码)以登录页面并转到仪表板。得到特别的回应。我的问题是如何在我的 Android 应用程序上获得该响应。

使用工具:Android studio、Java

java android android-studio android-activity android-webview
1个回答
0
投票

提供登录信息并登录后,您可以使用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 函数。

© www.soinside.com 2019 - 2024. All rights reserved.