无法在非注入对象上调用Java桥方法

时间:2019-12-03 14:07:52

标签: java android android-webview

在我的Android应用中,我正在使用带有setJavaScriptEnabled(true)的WebView和获取回调的JavaScript接口。

我发现运行以下代码时收到错误消息Java bridge method can't be invoked on a non-injected object

我的Java代码具有:

public class WebAppInterface {
    @JavascriptInterface
    public void onResult(String json) {
        // Do something here
    }
}
webView.addJavascriptInterface(WebAppInterface(), "Android")

在WebView的JavaScript中,我正在运行:

let callback = Android.onResult
callback('test') //boom :(

但是调用回调会产生错误。

1 个答案:

答案 0 :(得分:0)

使用函数包装解决了我的问题:

let callback = function(res) { Android.onResult(res); }
callback('test')

我从此评论中得到了一些提示,指出了正确的方向: https://github.com/react-native-community/react-native-webview/issues/323#issuecomment-511824940