我有一个需要注入到webview中的js函数的文件,但似乎找不到正确的方法来执行此操作。据我了解到目前为止,我需要通过在web视图中设置setWebViewClient
并在onPageFinished
那里注入js,通过这样做注入js:webview.loadUrl("javascript:" + js);
现在我的问题是:是上述正确的,以及如何获取返回值我执行的JavaScript函数?在webview中注入javascript
由于
我有一个需要注入到webview中的js函数的文件,但似乎找不到正确的方法来执行此操作。据我了解到目前为止,我需要通过在web视图中设置setWebViewClient
并在onPageFinished
那里注入js,通过这样做注入js:webview.loadUrl("javascript:" + js);
现在我的问题是:是上述正确的,以及如何获取返回值我执行的JavaScript函数?在webview中注入javascript
由于
在上述正确
的loadUrl()
方法对于API级别18和下面正确。作为替代,在API级别19中添加了evaluateJavascript()
。
无论在onPageFinished()
中调用该代码是否合适,我们都不能说。
我该如何获得我执行的javascript函数的返回值?
使用loadUrl()
,您不会得到返回值,至少不是直接。您必须在WebView
上使用addJavascriptInterface()
来注册一个假的JS全局映射到您提供的某个Java对象,然后让JavaScript调用该全局的某种方法将数据传回WebView
。
使用evaluateJavascript()
,您可以传递一个回调对象,该对象将返回任何JS返回的String
表示形式(如果有的话)。