执行此javascript函数并获取返回值

时间:2015-08-14 09:53:52

标签: javascript android android-webview

我有这个从javascript函数获取返回值的android代码,我有这个代码:

file_list_detail_webview1.evaluateJavascript("javascript:getValue();", new ValueCallback<String>() {
                @Override
                public void onReceiveValue(String s) {

                    JsonReader reader = new JsonReader(new StringReader(s));

                    // Must set lenient to parse single values
                    reader.setLenient(true);

                    try {
                        if(reader.peek() != JsonToken.NULL) {
                            if(reader.peek() == JsonToken.STRING) {
                                String msg = reader.nextString();
                                if(msg != null) {
                                    FileFunction fileFunction = new FileFunction();
                                    try {
                                        fileFunction.writeFile(filePath, msg);
                                    } catch (ArcAppException e) {
                                        e.printStackTrace();
                                    }
                                }
                            }
                        }
                    } catch (IOException e) {
                        Log.e("TAG", "MainActivity: IOException", e);
                    } finally {
                        try {
                            reader.close();
                        } catch (IOException e) {
                            // NOOP
                        }
                    }
                }
            });

我想在public String内进行,以便我可以重复使用它,并从中获取返回值。我尝试过这样做,但我使用的字符串却出错了。

有谁能请举例说明如何正确地做到这一点?

1 个答案:

答案 0 :(得分:0)

我没有足够的声誉来评论,但我不明白为什么你使用字符串作为方法名称。不允许public void String中的字符串,因为字符串是保留关键字,不允许用作方法名称。

如果希望返回类型为String,则需要将方法声明为public String yourMethodName