javascript interface 调用
时间: 2023-09-09 09:14:07 浏览: 62
JavaScript Interface 是指 JavaScript 和 Native 代码之间的一个接口,通过这个接口可以实现 JavaScript 调用 Native 代码的功能。在 Android 平台上,我们可以通过在 Java 代码中定义一个带有 @JavascriptInterface 注解的方法,然后在 WebView 中使用 addJavascriptInterface 方法将这个 Java 对象注入到 JavaScript 环境中,从而实现 JavaScript 调用 Native 代码的功能。
下面是一个简单的示例代码:
在 Java 代码中定义一个带有 @JavascriptInterface 注解的方法:
```java
public class WebAppInterface {
Context mContext;
/** Instantiate the interface and set the context */
WebAppInterface(Context c) {
mContext = c;
}
/** Show a toast from the web page */
@JavascriptInterface
public void showToast(String toast) {
Toast.makeText(mContext, toast, Toast.LENGTH_SHORT).show();
}
}
```
在 WebView 中使用 addJavascriptInterface 方法将这个 Java 对象注入到 JavaScript 环境中:
```java
WebView webView = (WebView) findViewById(R.id.webview);
webView.addJavascriptInterface(new WebAppInterface(this), "Android");
```
在 JavaScript 中调用这个 Native 方法:
```javascript
<input type="button" value="Say hello" onClick="showAndroidToast('Hello Android!')" />
<script type="text/javascript">
function showAndroidToast(toast) {
Android.showToast(toast);
}
</script>
```
当用户点击按钮时,就会调用 showAndroidToast 方法,该方法调用 Android.showToast 方法,从而弹出一个 Toast。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![application/x-zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)