我想完全控制webview控件。例如,我想知道它是否正在导航或是否已完成导航到所需页面。然后,我希望将应用程序中的相同数据(如用户名和密码)推送到webview打开的页面上的字段。 你能指点我一些例子或教程吗? 谢谢!
答案 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看起来如下,
$('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);
}