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

bro*_*wep 26 android android-webview

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

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

public class JavascriptBridge {

    public String getAString() {          
        return "my_str";
    }
}
Run Code Online (Sandbox Code Playgroud)

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

public class JavascriptBridge {

    public int[] getMyInts() {          
        return new int[]{1,2,3};
    }
}
Run Code Online (Sandbox Code Playgroud)

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

var myInts = Android.getMyInts();
Run Code Online (Sandbox Code Playgroud)

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

小智 19

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

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


Jam*_*ald 8

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

var array = JSON.parse(window.android.getSomeJsonThing());
Run Code Online (Sandbox Code Playgroud)