Java WebView自动填写表单
论坛上有很多关于我的问题的主题,但是所有的代码都不适用 有一个表格:Java WebView自动填写表单,java,android,android-webview,Java,Android,Android Webview,论坛上有很多关于我的问题的主题,但是所有的代码都不适用 有一个表格: <form name="forma1"> <input type="text" name="ulogin" size="20" maxlength="50" value="login"> </form> 代码2 String username = "cristian"; webview.loadUrl("javascript:document.getElementById('ulog
<form name="forma1">
<input type="text" name="ulogin" size="20" maxlength="50" value="login">
</form>
代码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(); };");
但是当页面打开,但表单没有填写时,有什么问题吗?我有两个建议:
id
属性设置为ulogin
onPageFinished
回调是错误的。这意味着网络资源已完成加载,而不是DOM元素已加载。因此,当代码运行时,ulogin
元素可能还不存在。
您是否可以尝试在HTML文档的
onload
事件的JavaScript接口回调[1]中运行脚本[1] ,java.lang.String)如果要向表单id添加内容,title ulogin尝试过,也不起作用。好的,在这种情况下,我怀疑您遇到了我在第2期中描述的问题。你能试试我的建议吗?你能试着从HTML文档的onload事件在JavaScript接口回调[1]中运行你的脚本吗?怎么做?如果没有onPageFinished,则无法运行。请使用将运行WebView.loadUrl()调用的方法在Java中定义一个新类。在执行其他与WebView相关的设置时,使用该类的实例调用WebView.addJavaScriptInterface。现在在您的网页中,注册一个调用window.myJSInterface.myMethod()的onload侦听器。其中myJSInterface是您在调用addJavaScriptInterface时设置的接口的名称,myMethod是您要调用的Java方法的名称。对不起,我对Java了解不多,可以为我写一个示例来理解您的意思吗?这个问题仍然相关((好的,只是检查一下-您在WebView中启用了JavaScript吗?默认情况下它是关闭的。请参阅WebView=(WebView)findViewById(R.id.webView1);WebView.setWebViewClient(new WebViewClient());WebView.getSettings().setJavaScriptEnabled(true);WebView.loadUrl(“);
webView.loadUrl("javascript: {" +
"document.getElementById('ulogin').value = '"+uname +"';" +
"var frms = document.getElementsByName('forma1');" +
"frms[0].submit(); };");