webview控件:如何将数据从应用程序发布到网页上的字段?

时间:2014-04-01 06:20:39

标签: android-webview

我想完全控制webview控件。例如,我想知道它是否正在导航或是否已完成导航到所需页面。然后,我希望将应用程序中的相同数据(如用户名和密码)推送到webview打开的页面上的字段。 你能指点我一些例子或教程吗? 谢谢!

1 个答案:

答案 0 :(得分:0)

依赖以下帖子进行javascript注入: Inject javascript into WebChromeClient

现在只需更改底层的JavaScript。重要的是要理解Javascript直接受HTML的影响,因此如果HTML被更改,则Javascript(可能还有您的应用程序需要更新)。

因此,如果您获得以下HTML:

<form action="#" autocomplete="on">
    <input type="text"     name="username" placeholder="Username" />
    <input type="password" name="password" placeholder="Password" />
    <button type="submit">Login</button>
</form>

javascript看起来如下,

  1. 设置用户名
  2. 设置密码
  3. 点击登录按钮
  4. 进行自动登录
    $('input[name=\"username\"]').val('%@'); // 1.
    $('input[name=\"password\"]').val('%@'); // 2.
    $('.login').click(); // 3.
    

    现在只需通过webview加载:

    public void onPageFinished(WebView view, String url) 
    {       
        String loadPasswordJS = "$('input[name=\"username\"]').val('%@'); $('input[name=\"password\"]').val('%@'); $('.login').click();";
        view.loadUrl(loadPasswordJS);      
    }