我有一个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界面的有效返回类型列表?它只是原始人吗?
答案 0 :(得分:18)
我还没有看到有效类型的列表(用于将值传递给Java函数并返回),但只有原语和字符串似乎有效。
您可以使用JSON(例如,在Javascript中进行字符串化和解析,在json.org检查各种Java选项
答案 1 :(得分:8)
您可以返回任何内容,基元或对象。对象通过其toString()方法转换为字符串。如果JavascriptInterface方法返回一个JSON字符串(例如,一个对象的toString()输出JSON),那么你可以直接解析该字符串:
var array = JSON.parse(window.android.getSomeJsonThing());