android java和js交互
2016-03-28 17:44
477 查看
android本地java代码和javascript的交互
java调用js
通用设置mWebView = (WebView) findViewById(R.id.web_view); mWebView.getSettings().setJavaScriptEnabled(true); mWebView.addJavascriptInterface(this, "jsbridge"); mWebView.loadUrl("file:///android_asset/demo_java_js_call.html");
不带参数
mBtnJavaCallJsWithoutParam.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mWebView.loadUrl("javascript:java_call_js_without_param()"); } });
带参数
mBtnJavaCallJsWithParam.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String param = "'a param from java'";//注意引号 mWebView.loadUrl("javascript:java_call_js_with_param(" + param + ")" ); } });
js调用java
设置mWebView.addJavascriptInterface(this, "jsbridge");
不带参数
js: <a onClick="window.jsbridge.callFromJs()">点击这里-->调用java代码,无参数</a><br/> java: @JavascriptInterface public void callFromJs() { Toast.makeText(this, "callFromJs, 无参", Toast.LENGTH_LONG).show(); }
带参数
js: <a onClick="window.jsbridge.callFromJsWithParam('来自js的参数')">点击这里-->调用java代码并传递参数</a><br/> java: @JavascriptInterface public void callFromJsWithParam(String param) { Toast.makeText(this, "callFromJs, 参数是:" + param, Toast.LENGTH_LONG).show(); }
其他
完整示例 https://github.com/cheyiliu/JsJavaInteractInAndroidjs返回值问题 http://stackoverflow.com/questions/3298597/how-to-get-return-value-from-javascript-in-webview-of-android
jsbridge(js桥)开源库推荐 https://github.com/pedant/safe-java-js-webview-bridge
相关文章推荐
- JQuery1——基础($对象,选择器,对象转换)
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager