Android中使用webview和web页面的一些交互
来源:互联网 发布:达内大数据怎么样 编辑:程序博客网 时间:2024/06/05 20:40
一般来说,比较成熟的公司,android的native开发和webview中内嵌的web页面开发是分离的。Android可以使用webview来呈现web端的页面效果,在app设计的时候,适当情况下使用webView是一种轻耦合的页面展现。
1.webView和javascript的交互:
(1)web执行native代码,示例:
private class MyJavaScript{ public void setText(String data) { //TODO add your code here}}
//将这个接口在webview中进行注册:MyJavaScript javaScript = new MyJavaScript();//此处的 "js" 为任意字符串,是在html中调用时引用webView.addJavascriptInterface(javaScript, "js"); //在html中定义js代码//关键是代码: javascript:window.jd.setText('sth') "js" 为上述注册的 MyJavaScript 的引用名//这里将调用上述 java 代码中 MyJavaScript 中的 getText(String data) 方法,从而达到 web 向 native 主动传值的方法<input id="test1" type="text" onclick="javascript:window.js.setText('hello word')" value="hello world"/>
(2)native调用js改变web页面元素
//在 html 中定义用具接收 native 传值调用的 js<script language="javascript" type="text/javascript">function setText(text){document.getElementById('sth').value=text;}</script> //在 native 中主动调用执行上述的 jswebView.loadUrl("javascript:setText('hello world')");2.webView拦截特殊url.
可以根据不同的uri的schema做不同处理,例如识别出camera://,调用手机的相机功能进行拍照。示例如下:
webView.setWebViewClient(new WebViewClient() {/** * 返回true阻止浏览器处理 */private boolean checkUrl(String url) {Uri uri = Uri.parse(url);String schema = uri.getScheme();if(schema.contains("camera"){ //TODO return true;}return false;}@Overridepublic boolean shouldOverrideUrlLoading(WebView view, String url) {if (checkUrl(Uri.parse(url))) {return true;} else {return super.shouldOverrideUrlLoading(view, url);}}@Overridepublic void onPageStarted(WebView view, String url, Bitmap favicon) {if (checkUrl(Uri.parse(url))) {webView.stopLoading();return;} super.onPageStarted(view, url, favicon);}@Overridepublic void onPageFinished(WebView view, String url) {super.onPageFinished(view, url);}@Overridepublic void onReceivedError(WebView view, int errorCode, String description, final String failingUrl) {super.onReceivedError(view, errorCode, description, failingUrl);}});
- Android中使用webview和web页面的一些交互
- WebView和Web的交互
- WebView---Android中webview和js之间的交互
- WebView---Android中webview和js之间的交互
- Android中js交互以及webview的一些用法
- Android webview使用 webview和js交互
- 关于在android中使用webview 和js交互
- android中webView的一些使用
- android webView加载页面的交互
- android中webView和html中js的交互
- Android中webview和js之间的交互
- Android中webview和js之间的交互
- Android中webview和js之间的交互及注意事项
- Android中webview和js之间的交互
- Android中webview和js之间的交互及注意事项
- Android中webview和js之间的交互
- Android中webview和js之间的交互
- Android中webview和js之间的交互
- php生成柱状图
- Android Rom修改
- HDU 3518 Boring counting(后缀数组 所有不重叠字串出现两次以上的次数)
- 三角函数公式
- UML类图小结
- Android中使用webview和web页面的一些交互
- 另存为窗口没有“桌面”选项的解决方法
- 二层、三层、四层交换机的区别
- Nodejs + mongoDB 使用初体验
- 类型双关(type punning)与严格别名(strict aliasing)
- 整体优化的9个技巧
- Visual Studio下用LAME将wav编码为mp3
- Javascript操作Select和Option
- UVA 111 - History Grading(动态规划)