Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将值从activity传递到Android webview for Javascript方法_Javascript_Json_Android Webview_Parameter Passing - Fatal编程技术网

将值从activity传递到Android webview for Javascript方法

将值从activity传递到Android webview for Javascript方法,javascript,json,android-webview,parameter-passing,Javascript,Json,Android Webview,Parameter Passing,我试图将一个数组从我的活动传递到位于Assets dir中的html文件中的javascript方法 我使用JavascriptInterface传递我的int数组,比如JSONArray: public class JavaScriptInterface { Context mContext; JavaScriptInterface(Context c) { mContext = c; }

我试图将一个数组从我的活动传递到位于Assets dir中的html文件中的javascript方法

我使用JavascriptInterface传递我的int数组,比如JSONArray:

public class JavaScriptInterface {

        Context mContext;       
        JavaScriptInterface(Context c) {

            mContext = c;

        }

        @JavascriptInterface
        public JSONArray getValues() {

            String values = "[100,133,'',120,122,132,133]";

            JSONArray jsonarr = null;

            try {

                jsonarr = new JSONArray(values);

            }

            catch(JSONException e) {

                e.printStackTrace();
            }

            return jsonarr;
        }


    }
在javascript方法中,我采用如下值:

    var data = JSON.parse(js.getValues());
现在,我正在不同的设备和AVD上测试我的项目:

该代码在三星Note 2(JB 4.2.1)和带有目标Google API的AVD(API级别8)上运行良好,而在华硕Nexus 7(JB 4.2.2)和其他带有JB 4.2的AVD上,该代码停止工作并返回Web控制台错误:

03-25 16:35:12.809:E/Web控制台(11352):未捕获的语法错误: 意外标记o位于file:///android_asset/data/test.html:1

我需要这些值来表示使用Javascript库的图表

此外,我还修改了proguard-project.txt文件,拒绝javascript代码混淆:

keepclassmembers class fqcn.of.javascript.interface.for.webview {
   public *;
}
-keep public class com.XXX.XXX.DataReportActivity$JavaScriptInterface
-keep public class * implements com.XXX.XXX.DataReportActivity$JavaScriptInterface
-keep classmembers class com.XXX.XXX.DataReportActivity$JavaScriptInterface {
    <fields>;
    <methods>;
}
-keepattributes JavascriptInterface
keepclassmembers类fqcn.of.javascript.interface.for.webview{
公众*;
}
-保持公共类com.XXX.XXX.DataReportActivity$JavaScriptInterface
-keep public类*实现com.XXX.XXX.DataReportActivity$JavaScriptInterface
-保持classmembers类com.XXX.XXX.DataReportActivity$JavaScriptInterface{
;
;
}
-keepattributes JavascriptInterface
有人知道怎么解决吗


请,欢迎任何帮助

更改Javascript接口以返回字符串。JSON.parse应为字符串,而不是JSON对象

@JavascriptInterface
    public String getValues() {
        String values = "[100,133,'',120,122,132,133]";
        return values;
    }
值字符串可能需要加引号,javascript函数才能对其进行解析。换言之:

return "'" + values + "'";