Android - 在api-level 19之前评估你的JavaScript

时间:2017-07-11 07:25:53

标签: javascript android webview android-api-levels

evaluatejavascript可用于API级别19及更高版本。它有一个回调。我知道在API级别19之前我可以使用loadUrl而不是evaluatejavascript。但是如何处理脚本的返回值?有解决方案吗?

String script = "function(){ return "abc"}()";
mywebview.loadUrl(script);

1 个答案:

答案 0 :(得分:0)

您可以为此使用WebView.addJavascriptInterface()。然后,JavaScript可以使用该接口将其传达回您的代码。

示例代码:

class JsObject {
    @JavascriptInterface
    public void returnValue(String value){
        Log.d("JsObject", "Got value [" + value + "]");
    }
}
mywebview.getSettings().setJavaScriptEnabled(true);
mywebview.addJavascriptInterface(new JsObject(), "injectedObject");
mywebview.loadUrl("javascript:function(){ injectedObject.returnValue('abc')}()");