使用Javascript在webview(安卓系统)中填写表单,无需输入类型为文本和密码的元素ID
Using Javascript to fill form in webview(Android) without element ID of input type- text and password?
我已经在我的应用程序的webview中打开了一个网站(Cyberoam学院)的登录页面。现在我想让用户不必一次又一次地输入用户名和密码,而是可以从列表或其他地方选择,应用程序会自动填写用户名、密码并点击登录。我已经读到,要做到这一点,我需要在我的webview中实现javascript。
问题是,用户名和密码字段的html标签中都没有id,只有name属性-
<input type="text" name="username">
<input type="password" name="password">
登录按钮有ID,因此可以使用-
<input type="submit" name="btnSubmit" value="Login" id="logincaption">
现在,我需要以某种方式使用MainActivity.java中存储在变量中的字符串来填充用户名textField,然后是密码字段,最后在用户单击存储用户名和密码列表中的元素时单击登录按钮。
请告诉我如何在Android中实现这一点!
首先,使用以下语句
@SuppressLint("SetJavaScriptEnabled")
然后,你可以:
mWebView = (WebView) findViewById(R.id.webview);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.setWebChromeClient(new WebChromeClient());
mWebView.setWebViewClient(new WebViewClient(){
@Override
public void onPageFinished(WebView view, String url) {
String javascript="javascript: document.getElementById('someid').innerHTML='Hello World!';";
view.loadUrl(javascript);
}
});
mWebView.loadUrl(URL);
您可以使用此方法插入Java接口,以通过Java方法异步控制。
首先要确保这不是iframe。我相信,如果您可以构建本地登录,那么就没有理由添加webView用于登录。无论如何,如果你需要选择输入,你可以使用:
function login(){
document.querySelector("input[name=username]").value = "username";
document.querySelector("input[name= password]").value = "password";
document.forms[0].submit();
}
要将Java代码中的值传递给JS,必须编写一个桥接器并触发JS函数你可以在这里阅读如何建造桥梁:http://blog.cuelogic.co.in/simple-android-java-javascript-bridge/
相关文章:
- 使用模式格式化Number类型输入中的值
- 在 JavaScript 中单击函数时两个日期类型输入之间的差异的代码
- 在codeigneter中按类型输入框显示数据库中的数据
- 已从'上传文件;文件'img字段中未显示类型输入字段
- 如何使用ReactTestUtils设置HTML5文件类型输入
- 检测用户拖动范围类型输入
- 无法在使用 Java 脚本创建的表单中设置提交类型输入
- 按钮类型输入上的点击事件不起作用
- 如何使用javascript更改隐藏类型输入字段的值
- sap.m中的自定义输入类型.输入sap-ui5
- 如何使用jquery动态添加/删除文件类型输入字段
- 提交事件未捕获提交类型输入
- Jquery - info/docs关于适用于表单中不同类型输入元素的属性列表
- 从Mobile Safari'日期/时间类型输入字段触发哪些事件?
- 饼状图II -动态值从范围类型输入
- 我可以在文件类型输入中显示文件大小吗?
- 新的webkit在数字类型输入中将十进制逗号转换为~ dot,反之亦然.该浏览器特性的Javascript名称
- 如何在javascript中验证具有相同名称的多个相同类型输入
- 邮件类型输入:如果邮件错误或正确,动态改变按钮的颜色/文本
- 如何将文件类型输入传递到javascript中,并将其用于另一个php页面