Android Java和js互调案例演示(HTML5混合开发)
来源:互联网 发布:手机淘宝怎么团购 编辑:程序博客网 时间:2024/05/07 17:35
WebView相关知识-案例1
1.加载网页要用WebView控件
2.要想支持js就要设置 webview.getSettings().setJavaScriptEnabled(true);
3.webview.loadUrl可以加载本地的html页面也可以加载网络html页面,还可以调用js的方法 webview.loadUrl("file:///android_asset/JavaCallJS1.html");
放html页面的时候是放在assets目录下,代码加载的时候: file:///android_asset/vido/xxxxx.html
4.在Android中要从html页面中弹出对话框需要
//支持从html中弹出对话框 //webview.setWebChromeClient(new WebChromeClient());
WebView相关知识-案例2 --js调用java
// 添加一个对象, 让JS可以访问该java对象的方法, 该java对象中可以调用JS中的方法 //注意Java调用JS的时候addJavascriptInterface是不必须的 mWebView.addJavascriptInterface(getHtmlObject(), "yangguangfu");
html中点击事件
调用yangguangfu(对应的是一个接口) 对应的JavacallHtml方法
WebView相关知识-案例3-js-调用Java的运用场景
1.从网页拨打电话 2.从网页中调用系统播放器并且播放 3.网页中吊起系统的邮件客户端
1.webView.loadUrl("file:///android_asset/JsCallJava.html");
2.webView.addJavascriptInterface(new Atguigu(), "Android");
3.加载数据
4.调用了Java代码中的方法showcontacts(),代码如下:
// Html调用此方法传递数据 public void showcontacts() { handler.post(new Runnable() { @Override public void run() { Log.e(TAG, "java --showcontacts---"); // 下面的代码建议在子线程中调用 String json = "[{\"name\":\"阿福\", \"amount\":\"100000\", \"phone\":\"18600012345\"}]"; // 调用JS中的方法 webView.loadUrl("javascript:show('" + json + "')");//加载电话 //视频信息 String jsonVideo = "[{\"name\":\"我是视频点击播放\", \"amount\":\"9999\", \"phone\":\"http://10.0.2.2:8080/oppo.mp4\"}]"; webView.loadUrl("javascript:showvideo('" + jsonVideo + "')");//视频 } });
5.java调用js代码中的show()方法,作用是在html页面中显示数据
function show(jsondata){ var jsonobjs = eval(jsondata); var table = document.getElementById("personTable"); for(var y=0; y<jsonobjs.length; y++){ var tr = table.insertRow(table.rows.length); var td1 = tr.insertCell(0); var td2 = tr.insertCell(1); td2.align = "center"; var td3 = tr.insertCell(2); td3.align = "center"; td1.innerHTML = jsonobjs[y].name; td2.innerHTML = jsonobjs[y].amount; td3.innerHTML = "<a href='javascript:Android.call(\""+ jsonobjs[y].phone+ "\")'>"+ jsonobjs[y].phone+ "</a>"; } }
6.点击的时候调用了java的call方法,并且传递参数给java代码 javascript:Android.call(\""+ jsonobjs[y].phone+ "\")//电话 javascript:Android.playVideo(\""+ jsonobjs[y].phone+ "\")//视频
7.Java中的call方法就去拨打电话了
public void call(String phone) { Log.e(TAG, "java --call(String phone)---==" + phone); startActivity(new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + phone))); }
8.如果是视频,就调用Java中的playVideo方法
public void playVideo(String videoUrl) { Log.e(TAG, "java --playVideo(String videoUrl)---==" + videoUrl); Intent intent = new Intent(Intent.ACTION_VIEW); intent.setDataAndType(Uri.parse(videoUrl), "video/*"); startActivity(intent); }
WebView相关知识-案例4-js-调用Java的真实场景
- Android Java和js互调案例演示(HTML5混合开发)
- Android和HTML5混合开发
- Android混合开发 java和js交互
- Android-Java和HTML5交互-混合开发-优化
- Android和HTML5混合开发中android代码与JS交互
- android混合开发,webview的java与js互操作
- android混合开发,webview的java与js互操作
- 混合开发关键技术Java和JS互调并交换数据
- JS和ASP混合使用案例
- ios 开发之 原生+html5混合开发 [[ 方法互调 ]]
- android web混合开发 混合开发实例——JS与Java的交互
- h5混合开发之Js和android简单交互
- 混合开发,原生+html5
- Java线程入门案例演示(一)
- Android客户端 — native+html5移动应用混合开发
- Android混合开发,html5自动更新爬过的坑
- Android混合开发之WebViewJavascriptBridge实现JS与java安全交互
- Android混合开发之WebViewJavascriptBridge实现JS与java安全交互
- nodejs request post 请求
- Java 学习笔记 Day007
- 养神
- java面向对象程序设计的六大基本原则
- java中对Date的操作
- Android Java和js互调案例演示(HTML5混合开发)
- 基于Opencv的几种立体匹配算法+ELAS
- 栈
- [jQuery知识]jQuery之知识三-过滤器
- Jetty集成Resteasy发布rest服务Demo
- 概念笔记之[javascript<-2->]闭包和封装
- 12.06
- 算法导论(第三版)习题解答9.1-1(找第二小的元素)
- 重新上路