欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

js调用android本地java代码

程序员文章站 2022-06-29 12:26:41
js调用android本地java代码 当在Android上使用WebView控件开发一个Web应用时,可以创建一个通过Javascript调用Android端java代码的接口。也就是可以通过Javascript代码来调用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