7 javascript android webview android-api-levels
evaluatejavascript可用于 API 级别 19 及更高版本。它有一个回调。我知道我可以在 API 级别 19 之前使用loadUrl代替evaluatejavascriptfor。但是我如何处理脚本的返回值?有解决方案吗?
String script = "function(){ return "abc"}()";
mywebview.loadUrl(script);
Run Code Online (Sandbox Code Playgroud)
您可以用于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')}()");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
573 次 |
| 最近记录: |