evaluatejavascript
可用于API级别19及更高版本。它有一个回调。我知道在API级别19之前我可以使用loadUrl
而不是evaluatejavascript
。但是如何处理脚本的返回值?有解决方案吗?
String script = "function(){ return "abc"}()";
mywebview.loadUrl(script);
答案 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')}()");