【发布时间】:2022-11-09 18:47:45
【问题描述】:
我正在创建一些代码来保存来自任何网站的表单数据,并在用户请求时填写它。
我正在使用带有 webView 的 java 来加载网页并注入 JavaScript 来执行操作。
一切都按预期工作,但在某些网页中,在填写完输入后,选择另一个输入字段时数据会消失。
private void injectScriptInputValue(){
//Current web address
String address = myWebView.getUrl();
ArrayList<PayInputs> payInputs = new ArrayList<>();
//Check for data which matches the current web address.
for (int i = 0; i < payPages.size(); i++) {
//Stored web address.
String payPageAddy = payPages.get(i).getAddress();
if (payPageAddy.compareTo(address) == 0) {
payInputs = payPages.get(i).getPayInputs();
break;
}
}
StringBuilder javaScriptInputs = new StringBuilder();
//Loop through the saved inputs and create javaScript code.
for (int i = 0; i < payInputs.size(); i++) {
String id = payInputs.get(i).getId();
String value = payInputs.get(i).getValue();
//javaScriptInputs.append("document.getElementById('").append(id).append("').focus()").append(";");
//javaScriptInputs.append("document.getElementById('").append(id).append("').select()").append(";");
javaScriptInputs.append("document.getElementById('").append(id).append("').value = '").append(value).append("';");
}
StringBuilder sb = new StringBuilder();
sb.append("(function()");
sb.append("{");
sb.append(javaScriptInputs);
sb.append("}");
sb.append(")");
sb.append("()");
myWebView.loadUrl("javascript:" + sb.toString());
}
网站上是否有可能导致此问题的原因,有没有办法解决此问题?检查数据的输入是否以某种方式格式化并且可以覆盖吗?
【问题讨论】:
标签: javascript java android input webview