WebView自动填充表单

时间:2014-02-10 08:25:04

标签: java android android-webview

论坛上有许多主题专门讨论我的问题,但所有代码都不适用于那里。

有一个表格:

<form name="forma1">
 <input type="text" name="ulogin" size="20" maxlength="50" value="login">
</form>

不适合我的代码: 代码1

webView.setWebViewClient(new WebViewClient(){
   @Override
   public void onPageFinished (WebView webView, String url)
   {
         webView.loadUrl("javascript:document.getElementById('ulogin').value='"+username+"';");
   }
});

代码2

  String username = "cristian";
webview.loadUrl("javascript:document.getElementById('ulogin').value = '"+username+"';");

代码3

webView.loadUrl("javascript: {" +
            "document.getElementById('ulogin').value = '"+uname +"';" +
            "var frms = document.getElementsByName('forma1');" +
            "frms[0].submit(); };");

但是当页面打开但是表单没有填写时,问题是什么?

1 个答案:

答案 0 :(得分:1)

我有两点建议:

  1. 检查您的HTML - 您需要将输入元素的id属性设置为ulogin

  2. 一般来说,我认为onPageFinished是用于此的错误回调。这意味着网络资源已完成加载,而不是已加载DOM元素。因此,当您的代码运行时,ulogin元素可能尚不存在。 您是否可以尝试在HTML文档的onload事件中的JavaScript接口回调[1]中运行脚本?

  3. [1] http://developer.android.com/reference/android/webkit/WebView.html#addJavascriptInterface(java.lang.Object,java.lang.String)