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调用android端java代码的接口。也就是可以通过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代码中,通过webview的addjavascriptinterface方法将第一步创建的接口和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
上一篇: 儿子五岁
下一篇: Carthage入门篇-安装和使用