Javascript 在WebView android中自动填充字段

Javascript 在WebView android中自动填充字段,javascript,android,webview,field,Javascript,Android,Webview,Field,我想用这段代码填充字段,但它给了我一个错误 Account[] accounts = AccountManager.get(this).getAccounts(); for (Account account : accounts) { // TODO: Check possibleEmail against an email regex or treat // account.name as an email address only for certain ac

我想用这段代码填充字段,但它给了我一个错误

Account[] accounts = AccountManager.get(this).getAccounts();
    for (Account account : accounts) {
      // TODO: Check possibleEmail against an email regex or treat
      // account.name as an email address only for certain account.type values.


      String possibleEmail = account.name;



    myWebView.setWebViewClient(new HelloWebViewClient());

    setTitleColor(Color.GRAY); //the title bar color
    myWebView.loadUrl("http://m.gmail.com");
    myWebView.loadUrl("javascript: {document.getElementById('id_email').value ='"+possibleEmail+"'};");


} 
它给了我这个错误

05-02 20:28:24.191:E/Web控制台(1402):未捕获类型错误:无法将null的属性“value”设置为1


感谢您的帮助

loadURL是异步的;换句话说,调用loadUrl启动HTTP请求,但在下载和呈现文档之前立即返回。您看到的错误是因为您试图过早地执行javascript(在下载、解析和呈现文档之前)

在执行javascript之前,您需要使用,并等待页面完成加载。尝试onPageFinished回调,但要小心,由于iFrame等原因,有时可能会收到多个回调

希望有帮助

编辑 如果您的目标是KITKAT及以上版本,那么您还必须注意在android版本上使用哪种方法。下面的代码给出了更好的解释:

 if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT)
 {
        webView.evaluateJavascript(yourScript, null);
 }
 else
 {
       webView.loadUrl(yourScript);

 }

嘿你能参考任何完整的例子吗。我以前从未使用过这种代码。