如何将String注入Android WebView

时间:2013-10-24 00:42:07

标签: javascript android html 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文件中的表单?

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

提前致谢!

1 个答案:

答案 0 :(得分:3)

自己找到答案。

应使用以下代码。

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

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