正在尝试将数据推送到WebView中的JS函数中

Trying to push Data into JS function within WebView

本文关键字:WebView 中的 JS 函数 数据      更新时间:2023-09-26

目标:我想获取一个JSON字符串,并将其传递到Android WebView中的JavaScript函数中。

我在做什么:我需要从android SQLite数据库中获取数据,将其转换为JSON,将其传递到浏览器中,并使用图表显示数据。我已经完成了所有这些,只是我不知道如何将JSON传递到JavaScript函数/浏览器中。

所以在我的html头中有一个js函数:

        <script type="text/javascript">
            function returnData(json) {
                 //Do something in here with the JSON String
            }
        </script>

然后在我的Java中,我有一个javascript接口,我将执行JS"returnData"函数。

final class DemoJavaScriptInterface {
        DemoJavaScriptInterface() {
        }
        public void clickOnAndroid() {
            mHandler.post(new Runnable() {
                public void run() {
                    json = "[{ country: '''"USA'''", visits: 4252 },{ country: '''"China'''", visits: 1882 },{ country: '''"Japan'''", visits: 1809 }]";
                    mWebView.loadUrl("javascript:returnData("+json+")");
                }
            });
        }
}

现在,如果我只想执行"returnData"函数,它会被执行得很好。(以下作品(

mWebView.loadUrl("javascript:returnData()");

但如果我尝试将字符串推入函数(如下所示(,它就会"失败"。。。不幸的是,我对JS没有太多的经验,所以我不知道为什么JS函数永远不会被调用。

mWebView.loadUrl("javascript:returnData("+json+")");

我正在寻找任何方法将数据推送到java脚本函数中,或者在DOM中的某个地方我可以存储数据(我想(JS函数可以从中获取数据。

任何帮助都将不胜感激,谢谢。

我需要在JSON字符串周围添加单引号。

mWebView.loadUrl("javascript:returnData('"+json+"')");