繁体   English   中英

如何将String注入Android WebView

[英]How to inject a String into Android WebView

我正在加载一个简单的网页,文本字段名为“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
            }
        }
    } 

吐司通知出现,条形码的序列号作为主剪辑复制到剪贴板,但为什么不填写html文件中的表单?

我觉得我错过了一些东西,但我的眼睛已经疲惫,这令我感到沮丧。 有谁知道如何帮忙?

提前致谢!

我自己找到了答案。

应使用以下代码。

browser.loadUrl("javascript:document.forms[0].AddSerialNum.value = '"+contents+"';");

您似乎必须通过节点导航到该字段,而不仅仅是最终字段。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM