webview如何调用java

webview如何调用java

作者:William Gu发布时间:2026-01-31阅读时长:0 分钟阅读次数:7

用户关注问题

Q
如何在WebView中实现JavaScript调用Java方法?

我希望通过WebView加载的网页中的JavaScript代码能调用Android端的Java方法,这应该如何实现?

A

通过添加Java对象并开启JavaScript支持

需要先启用WebView的JavaScript支持,通过webView.getSettings().setJavaScriptEnabled(true)实现。然后定义一个Java类,里面写需要供JavaScript调用的方法,使用@JavascriptInterface注解标记。接着调用webView.addJavascriptInterface(javaObject, "interfaceName")将Java对象注入到WebView中,网页的JavaScript可以通过window.interfaceName.方法名()的方式调用对应Java方法。

Q
怎样让WebView调用Java代码时传递参数?

我需要从网页的JavaScript中向Java传递字符串或数字参数,Java端如何接收这些参数?

A

使用@JavascriptInterface注解的方法参数接收参数

在Java端注入的对象中定义带参数的方法,并用@JavascriptInterface注解。JavaScript调用时,可以传入参数,比如window.interfaceName.someMethod('参数字符串'),Java方法的参数就会接收到传来的值。注意只支持基本数据类型及字符串,复杂对象需自行序列化。

Q
WebView调用Java方法后如何返回结果给网页?

我让Java代码处理一些逻辑,需要将处理结果传回JavaScript,怎么实现来回交互?

A

使用WebView的evaluateJavascript方法回调JavaScript

Java方法处理完成后,可以调用webView.evaluateJavascript(""),执行JavaScript代码并通过ValueCallback获得执行结果。另外,也可以在Java接口方法内部定义回调机制,将结果回调至JavaScript页面,例如调用window.someCallback(result)完成数据回传,实现双向通信。