评估后JavascriptInterface不起作用

时间:2018-12-13 13:59:31

标签: javascript android webview

我在WebView中加载了一些脚本。问题在于,在使用evaluateJavascript()方法之后,新添加的JavascriptInterfaces无法用于WebView。在传递给Javascript方法的对象的序列化过程中,我要添加新的JavascriptInterfaces。在此操作之后,它们存在于JS中(我使用console.log从JS端打印了传递的内容)。当webView试图给他们打电话时,我得到了 Uncaught ReferenceError: Native5 is not defined,其中Native是添加的JS接口的名称。

这是我正在采取的步骤:

  1. webView.loadUrl(script);

  2. 在Android中的某些Button单击事件中,我创建了一个新脚本并将其传递给JS方法,在脚本创建期间,我向JavascriptInterfaces添加了新的WebView

    webView.evaluateJavascript(prepareScript(),新的ValueCallback(){     @Override     公共无效onReceiveValue(String value){     } });

    private prepareScript(){     //一些对数据的字符串操作     if(nativeNeeded);     webView.addJavascriptInterface(jsHandlerClass,“ Native5”);     返回“ javascript:updateWebContent(“ +数据+”)'“; }

在更新WebView之后,除了我新添加的JavascriptInterfaces之外,其他所有东西都工作正常。我该如何强制其正常运行?

0 个答案:

没有答案