导言
我想在Android中自动加载到webview的网页。我会加载一个网页,然后它会自动填充页面中的字段,它会点击提交按钮,下一页将显示。将填充的值由用户定义之前,并保存到数据库中。该网页不属于我,所以我不能直接从服务器端创建服务。我必须从客户端做所有的事情。
以下是我所做的:
Html代码:
<td>
<input name="txtRegNo" type="text" id="txtRegNo" placeholder="Enter Registration No" style="height:24px;width:300px;" />
<span id="RequiredFieldValidator1" style="color:Red;visibility:hidden;">Enter Valid registration No.</span>
</td>
为了填写id txtRegNo
,我在网络视图的onPageFinished中使用了以下代码:
String password = "1201329022";
webview.loadUrl("javascript:var uselessvar =document.getElementById('txtRegNo').value='" + password + "';");
我面临的问题:
Html代码:
<td class="rcInputCell" style="width:100%;">
<span id="dpStudentdob_dateInput_wrapper" class="riSingle RadInputRadInput_Default" style="display:block;width:100%;">
<input id="dpStudentdob_dateInput" name="dpStudentdob$dateInput" class="riTextBox riEnabled" type="text">
<input id="dpStudentdob_dateInput_ClientState" name="dpStudentdob_dateInput_ClientState" type="hidden" autocomplete="off" value=" {"enabled":true,"emptyMessage":"","validationText":"","valueAsString":"","minDateStr":"01/01/1960","maxDateStr":"01/01/2015"}">
</span>
</td>
要填充id dpStudentdob_dateInput
:
String date= "5/8/2014";
webview.loadUrl("javascript:var uselessvar =document.getElementById('dpStudentdob_dateInput').value='" + date+ "';");
但是页面上说请输入正确的日期。但是当输入相同的日期时,这被认为是正确的参数,我得到了结果。
要操作的原始网页是this。
而且我想在java script的帮助下自动填充字段并点击按钮。
如何实现这一点?请务必提出任何解决方案。
1条答案
按热度按时间gjmwrych1#
要在Android应用程序中使用JavaScript自动填写WebView中的表单,您可以使用以下步骤:
1.首先,通过调用WebView示例上的setJavaScriptEnabled(true)方法在WebView中启用JavaScript。
1.接下来,创建一个用于填充表单字段的JavaScript函数。例如:
1.此函数将表单中用户名和密码字段的值分别设置为myUsername和myPassword。
1.调用WebView示例上的
loadUrl()
方法以加载包含要自动填充的表单的网页。例如:1.加载页面后,在WebView示例上调用
evaluateJavascript()
方法以执行fillForm()
函数。例如:这将执行
fillForm()
函数,该函数将自动填充表单字段。注意:如果表单域没有ID,您可能需要使用其他方法来定位和设置它们的值,例如使用
getElementsByName()
或getElementsByClassName()
方法。