Android开发中webView与HTML+JS的交互
来源:互联网 发布:杭州网络安防招聘 编辑:程序博客网 时间:2024/06/13 23:44
Android与HTML+JS的交互
在Android开发中,越来越多的商业项目使用了Android原生控件与WebView进行混合开发,当然不仅仅就是显示一个WebView那么简单,有时候还需要本地JAVA代码与HTML中的javascript进行交互,Android也对交互做了很好的封装,所以很容易就可以实现,例如:点击网页中的按钮让Android调用原生对话框,点击网页中的电话号码调用Android拨号。接下来就给大家分享一下如何实现Android与HTML+JS的交互。
本篇主要实现的功能点:
Android调用HTML中的javascript脚本
HTML中的javascript脚本调用Android本地代码
Android调用HTML中的javascript脚本并传递参数
HTML中的javascript脚本调用Android本地方法并传递参数
实现Android调用JS脚本其实是非常简单的,直接使用WebView调用loadUrl方法,里面是JS的方法名,并可以传入参数,javascript:xxx()方法名需要与JS中的方法名相同
contentWebView.loadUrl(“javascript:javacalljs()”);
HTML代码:
function javacallJs(){
document.getElementById(“content”).innerHTML=”JAVA调用了JS的无参函数”;
}
function javacallJs(arg){
document.getElementById(“content”).innerHTML=arg;
}
实现JS调用Android方法,需要在Java代码中添加下面这句,webView绑定javascriptInterface,js脚本通过这个接口来调用java代码,第一个参数是自定义类对象,映射成JS对象,这里我直接传this,第二个参数是别名,JS脚本通过这个别名来调用java的方法,这个别名跟HTML代码中也是对应的。
contentWebView.addJavascriptInterface(MainActivity.this,”android”);
HTML代码
< input type=”button” value=”点击调用java代码” onclick=”window.android.startFunction()”>
< input type=”button” value=”点击调用java代码并传递参数” onclick=”window.android.startFunction(“http://www.baidu.com“)”>
MainActivity中的主要设置
//启用javascript
contentWebView.getSettings().setJavaScriptEnable(true);
contentWebView.addJavascriptInterface(MainActivity.this,”android”);
@JavascriptInterfacepublic void startFunction(){ runOnUiThread(new Runnable()){ @Override public void run(){ Toast.makeText(MainActivity.this,"show",3000).show(); } }}@JavascriptInterfacepublic void startFunction(final String text){ runOnUiThread(new Runnable()){ @Override public void run(){ Toast.makeText(MainActivity.this,text,3000).show(); } }}
- Android开发中webView与HTML+JS的交互
- Android中WebView与JS的交互
- Android中webView与JS的交互
- Android中WebView与JS的交互
- android中webview与js的交互
- android中WebView与JS的交互
- android中webView和html中js的交互
- Android中WebView与HTML+Javascript的交互
- Android中 Webview中js与Activity的交互
- Android 开发之 WebVIew 与 JS 交互
- Android开发WebView与js交互
- Android开发中WebView与原生JS的数据交互详解
- Android开发中WebView与原生JS的数据交互详解
- Android开发中WebView与原生JS的数据交互详解
- Android中WebView与JS交互
- Android 中WebView与JS交互
- Android中webview与js交互
- android java与webview中js交互
- C++ 函数后加const
- 切换eclipse package explorer字体大小
- iOS-C语言-C语言的介绍以及第一个例子HelloWorld
- const成员函数、const类对象、mutable数据成员
- android.content.res.Resources$NotFoundException: String resource ID #0x7b
- Android开发中webView与HTML+JS的交互
- PC管理端及评委手机打分端的浏览器兼容问题
- HDU 1753 大明A+B
- iOS-沙盒机制-整合篇
- mysql如何处理auto_increment
- 芯片启动过程 ARM C51 Soc - RTOS LINUX - 之一
- CardView的学习
- iOS9 新特新介绍
- 封装的焦点轮播图代码