Android WebView上Javascript接口的有效返回值是什么?

时间:2012-02-01 23:36:55

标签: android android-webview

我有一个Android WebView,其JavaScript通过addJavascriptInterface方法调用Android方法:

myWebview.addJavascriptInterface(new JavascriptBridge(), "Android");

public class JavascriptBridge {

    public String getAString() {          
        return "my_str";
    }
}

这很好用。我想将一个int列表返回给WebView。试过这个:

public class JavascriptBridge {

    public int[] getMyInts() {          
        return new int[]{1,2,3};
    }
}

但在JS中调用此函数会返回undefined:

var myInts = Android.getMyInts();

是否有Android Javascript界面​​的有效返回类型列表?它只是原始人吗?

2 个答案:

答案 0 :(得分:18)

我还没有看到有效类型的列表(用于将值传递给Java函数并返回),但只有原语和字符串似乎有效。

您可以使用JSON(例如,在Javascript中进行字符串化和解析,在json.org检查各种Java选项

答案 1 :(得分:8)

您可以返回任何内容,基元或对象。对象通过其toString()方法转换为字符串。如果JavascriptInterface方法返回一个JSON字符串(例如,一个对象的toString()输出JSON),那么你可以直接解析该字符串:

var array = JSON.parse(window.android.getSomeJsonThing());