Android中WebView和JavaScript通信

简介:

     Android提供了webview和JavaScript之间通信的api,这样就能做到native程序和html程序之间的交互,看下面的例子(html中调用js,传递两个字符串给java程序):


java代码:

public class AndroidJsDemoActivity extends Activity { 	 	private WebView mWebView;      /** Called when the activity is first created. */     @Override     public void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.main);         mWebView = (WebView) findViewById(R.id.webview);         WebSettings webSettings = mWebView.getSettings();          webSettings.setSavePassword(false);          webSettings.setSaveFormData(false);          webSettings.setJavaScriptEnabled(true);          webSettings.setSupportZoom(true);         mWebView.addJavascriptInterface(new DemoJavaScriptInterface(), "androidjsdemo");         mWebView.loadUrl("file:///android_asset/demo.html");      }     final class DemoJavaScriptInterface {         DemoJavaScriptInterface() {          }          public void  test(String str1,String str2){              Intent intent=new Intent(AndroidJsDemoActivity.this,Activity2.class);             Bundle b=new Bundle();             b.putString("str1", str1);             b.putString("str2", str2);             intent.putExtras(b);             startActivity(intent);         }      } }
html代码:
<html>  <head>  <meta http-equiv="Content-Type" content="text/html; charset=gb2312">  <title>Insert title here</title>  </head>      <body>this is html page<p>         <input type="submit" value="buttons"          onclick="androidjsdemo.test('ddd','fff')"/>      </body>  </html>

重点看代码中标红部分。
androidjsdemo与java程序中
addJavascriptInterface(new DemoJavaScriptInterface(), "androidjsdemo")后面的参数对应
 
test('ddd','fff')是使用的 
DemoJavaScriptInterface的方法


本文转自xyz_lmn51CTO博客,原文链接:http://blog.51cto.com/xyzlmn/1230813,如需转载请自行联系原作者


相关文章
|
3天前
|
Android开发
Android JNI与CAN通信遇到的问题总结
Android JNI与CAN通信遇到的问题总结
26 1
|
6月前
|
API Android开发 数据安全/隐私保护
解决android webview 加载http url 失败 net::ERR_CLEARTEXT_NOT_PERMITTED 错误
解决android webview 加载http url 失败 net::ERR_CLEARTEXT_NOT_PERMITTED 错误
238 0
|
2月前
|
XML Android开发 数据格式
安卓和webview交互
安卓和webview交互
25 0
|
4月前
|
存储 JavaScript 安全
js中多个页面之间如何进行通信?有什么区别?
js中多个页面之间如何进行通信?有什么区别?
40 0
|
4月前
|
JavaScript 前端开发 Android开发
android开发,使用kotlin学习WebView(详细)
android开发,使用kotlin学习WebView(详细)
131 0
|
4月前
|
JavaScript
js实现跨浏览器tab选项卡页通信、传参,监听localStorage.变量的实时变化,实现打开多个浏览器页面窗口相互可以传参通信
js实现跨浏览器tab选项卡页通信、传参,监听localStorage.变量的实时变化,实现打开多个浏览器页面窗口相互可以传参通信
|
4月前
|
XML Android开发 数据格式
安卓和webview交互
安卓和webview交互
57 1
|
5月前
|
前端开发 JavaScript 数据处理
【JavaScript】在前后端通信方面的优势
【JavaScript】在前后端通信方面的优势
21 0
|
5月前
|
定位技术 Android开发
[√]Android webview的url scheme
[√]Android webview的url scheme
408 0
|
5月前
|
小程序 Android开发 iOS开发
在钉钉小程序中安卓无法打开webview
在钉钉小程序中安卓无法打开webview
116 1