javascript - 如何将字符串注入(inject) Android WebView

标签 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
            }
        }
    } 

toast通知来了,条码的序号作为主剪辑复制到剪贴板了,但是为什么不填写html文件上的表格呢?

我觉得我错过了什么,但我的眼睛很疲倦,这让我很沮丧。任何人都知道如何提供帮助?

提前致谢!

最佳答案

我自己找到了答案。

应使用以下代码。

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

看来你必须通过节点导航到那个字段,而不仅仅是最后一个字段。

关于javascript - 如何将字符串注入(inject) Android WebView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19554907/

相关文章:

php - 如何在移动设备中为div提供滚动条

javascript - 使用 PHP 和 JavaScript 显示/禁用按钮

javascript - 是否有一种算法可以在棋盘游戏中找到所有可能的路线?

javascript - 如何包装异步包函数?

javascript - 在javascript函数中更改文档背景图像

android - 为什么我的 flutter 应用程序启动器图标是一个圆圈?我可以用方形图标来代替这个吗?

android - 进度对话框微调器不旋转

java - Android开发中如何为常量变量存储单独的常量类

jQuery 滑动关闭多个按钮

javascript - 查询航点插件基本示例的问题