2015-11-06 78 views
-1

我有一个需要注入到webview中的js函数的文件,但似乎找不到正确的方法来执行此操作。据我了解到目前为止,我需要通过在web视图中设置setWebViewClient并在onPageFinished那里注入js,通过这样做注入js:webview.loadUrl("javascript:" + js); 现在我的问题是:是上述正确的,以及如何获取返回值我执行的JavaScript函数?在webview中注入javascript

由于

回答

3

在上述正确

loadUrl()方法对于API级别18和下面正确。作为替代,在API级别19中添加了evaluateJavascript()

无论在onPageFinished()中调用该代码是否合适,我们都不能说。

我该如何获得我执行的javascript函数的返回值?

使用loadUrl(),您不会得到返回值,至少不是直接。您必须在WebView上使用addJavascriptInterface()来注册一个假的JS全局映射到您提供的某个Java对象,然后让JavaScript调用该全局的某种方法将数据传回WebView

使用evaluateJavascript(),您可以传递一个回调对象,该对象将返回任何JS返回的String表示形式(如果有的话)。