I\'m trying to fill Webforms from a Webview in Android. I\'ve already found this piece of code here: Fill fields in webview automatically
String username = \
I had the same issue, and after following different explanations on stackOverflow, I succeed to make mine working.
here is my approach
webView.loadUrl(url);
webView.getSettings().setDomStorageEnabled(true);
webView.setWebViewClient(new WebViewClient(){
public void onPageFinished(WebView view, String url) {
String email="email@email.jp";
//view.loadUrl("javascript:document.getElementById('email').value = '"+email+"'");
view.loadUrl("javascript:document.forms[0].email.value = '"+email+"';");
Log.d("email", "can not add email");
}
});
2 things :
1) you need to add this line webView.getSettings().setDomStorageEnabled(true); (reference: Android WebView always returns null for javascript getElementById on loadUrl)
2) you need to access the variable in your php code by using this view.loadUrl("javascript:document.forms[0].email.value = '"+email+"';");
as you can see in my code I used the solution proposed by @gnpaolo, but it didn't work for me so I commented it and use this one. (reference: How to inject a String into Android WebView)
Finally, just want to add that you do not need to create a special javascript.
one more thing the forms[0] is the position of the variable in the php form, and in my case, I have the email of the user, so I wrote view.loadUrl("javascript:document.forms[0].email.value = '"+email+"';");
Hope, this can help others.