我正在加载一个简单的网页,其中包含一个名为“AddSerialNum”的文本字段
<form>
Serial Number: <input type="text" name="AddSerialNum">
</form>
然后我尝试使用从 Android 中的条形码扫描结果中获得的字符串填充该字段:
public void onActivityResult(int requestCode, int resultCode, Intent data) {
String contents = null;
//Call Clipboard and assign service to var.
ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 0) {
if (resultCode == RESULT_OK) {
//Set contents = to scan result
contents = data.getStringExtra("SCAN_RESULT");
//Format scan result
@SuppressWarnings("unused")
String format = data.getStringExtra("SCAN_RESULT_FORMAT");
//Copy Data to clipboard
ClipData clip = ClipData.newPlainText("serial", contents);
clipboard.setPrimaryClip(clip);
//Toast - message states copy was successful with serial number
Toast.makeText(this, "Copied " +contents , Toast.LENGTH_LONG).show();
// Handled a successful scan
//Put the results in the box!
browser.loadUrl("javascript:document.getElementByID('AddSerialNum').value = '"+contents+"';");
} else if (resultCode == RESULT_CANCELED) {
// Cancellation action
}
}
}
toast通知来了,条码的序号作为主剪辑复制到剪贴板了,但是为什么不填写html文件上的表格呢?
我觉得我错过了什么,但我的眼睛很疲倦,这让我很沮丧。任何人都知道如何提供帮助?
提前致谢!
最佳答案
我自己找到了答案。
应使用以下代码。
browser.loadUrl("javascript:document.forms[0].AddSerialNum.value = '"+contents+"';");
看来你必须通过节点导航到那个字段,而不仅仅是最后一个字段。
关于javascript - 如何将字符串注入(inject) Android WebView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19554907/