js调用android本地java代码

js调用android本地java代码

  当在Android上使用WebView控件开发一个Web应用时,可以创建一个通过Javascript调用Androidjava代码的接口。也就是可以通过Javascript代码来调用Android本地的java代码!

  下面来说明一下这个接口的具体创建方法。

  第一步:首先需要在Android侧的java代码中创建实现了具体功能的类。(注意:作为接口的方法必须要加@JavascriptInterface注解)比如:

 1 public class WebAppInterface {
 2     Context mContext;
 3 
 4     /** Instantiate the interface and set the context */
 5     WebAppInterface(Context c) {
 6         mContext = c;
 7     }
 8 
 9     /** Show a toast from the web page */
10     @JavascriptInterface
11     public void showToast(String toast) {
12         Toast.makeText(mContext, toast, Toast.LENGTH_SHORT).show();
13     }
14 }

 

  在这个例子中,WebAppInterface类允许Web页面通过showToast方法打开一个Toast提示消息。

  第二步:在Android侧的java代码中,通过WebViewaddJavascriptInterface方法将第一步创建的接口和WebView绑定起来。具体代码如下:

1 WebView webView = (WebView) findViewById(R.id.webview);
2 
3 // 传入的第二个参数angle,就是可已在js代码中直接使用的实例名称
4 webView.addJavascriptInterface(new WebAppInterface(this), "angle");

 

  第三步:使用第二步创建的接口。在Web页面的js代码中,可以条用angle对象的showToast方法来间接调用第一步中WebAppInterface类中的showToast方法。具体应用示例如下:

1 <input type="button" value="Say hello" onClick="showAndroidToast('Hello Android!')" />
2 
3 <script type="text/javascript">
4     function showAndroidToast(toast) {
5         angle.showToast(toast);
6     }
7 </script>

 

 参考资料:android-sdk/docs/guide/webapps/webview.html

 

posted @ 2018-09-19 21:13  敏晨  阅读(3602)  评论(0编辑  收藏  举报