【问题标题】:Reading hidden field value from webview Android从 webview Android 读取隐藏字段值
【发布时间】:2011-04-22 23:25:01
【问题描述】:

我正在创建一个具有用户注册页面的应用程序。这个页面是从我的 webview 中的 url 加载的,它有提交按钮。提交表单后,它会在下一个带有用户 ID 的 url 中为我提供一个隐藏字段。我的问题是我想将该 url 中的隐藏字段值读取到我的 android 应用程序中。

我已经尝试使用以下函数来获取加载页面事件。

@Override
    public void onPageFinished(WebView view, String url) {
        super.onPageFinished(view, url);

        view.loadUrl("javascript:window.HTMLOUT.showHTML('<head>'+document.getElementsById('userId').innerHTML+'</head>');");
    }

那我的showHtml方法是这样的

class MyJavaScriptInterface  
 {  
     @SuppressWarnings("unused")  
     public void showHTML(String html)  
     {  
        System.out.println("HTML "+html);


     }  
 }

注册用户后,我仍然无法获取加载的 HTML 页面的数据。 任何人都可以指导我在这里做错了什么吗?或者这不是我应该获取隐藏字段数据的方式。

【问题讨论】:

  • 如果页面 HTML 是有效的,您可以尝试使用 SAX Parser 或其他东西来解析 HTML。然后你可以隔离你的隐藏字段并获得它的价值。此外,如果返回隐藏字段的服务是您的,您可以让它返回一个 XML 文件(以便轻松解析它),或者您可以使用 Sockets 之类的东西进行注册。
  • 我的问题是我无法读取 html 数据或流,因为我无法控制我的 webview 中的 loded url

标签: android webview hidden-field


【解决方案1】:

您可以使用“getProgress()”方法检查网站是否已加载。完成后,您可以使用“getURL()”,例如'getOriginalURL()' 方法获取 URL,然后您可以在该 URL 上设置解析器以从隐藏字段中读取值。

如果这适用于服务(可能是一次性 URL,无法打开两次)。

无论如何,您要为什么服务编写代码(如果它不是您的)?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-10
    • 2023-03-09
    • 1970-01-01
    • 1970-01-01
    • 2012-11-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多