相关疑难解决方法(0)

Javascript回调函数传递给Android

我有一个用Java实现的javascript接口,由我在webview中加载的javascript代码调用.

JS Inside webview:

Android.myFunction(function(data){
    console.log(data);
});
Run Code Online (Sandbox Code Playgroud)

Java的:

public class JavaScriptInterface {

    Context context;
    WebView webView;

    JavaScriptInterface(Context c, WebView w) {
        context = c;
        webView = w;
    }

    public void myFunction(String callback) {
        //when I log callback, it is "undefined"
         String someData = "Yay for data";
         String js =
             "javascript:(function() { "
                 + "var callback = " + callback + ";"
                 + "callback('" + someData + "');"
             + "})()";
        webView.loadUrl(js);
    }
}
Run Code Online (Sandbox Code Playgroud)

由webview加载的字符串最终为:

javascript:(function() {var callback = undefined; undefined();})()
Run Code Online (Sandbox Code Playgroud)

我有一些想法: …

javascript java android webview

29
推荐指数
3
解决办法
4万
查看次数

标签 统计

android ×1

java ×1

javascript ×1

webview ×1