h5
来源:互联网 发布:有卖淘宝店铺的吗 编辑:程序博客网 时间:2024/05/01 15:24
今H5的广泛应用,使得Android与H5交互也变得十分广泛,这篇文章就交互问题浅谈一下。
Android通过内置的控件Webview来加载H5页面。webview的应用十分简单,只有设置一下其属性即可。代码如下:
webView.setVerticalScrollBarEnabled(false);
webView.setHorizontalScrollBarEnabled(false);
webView.getSettings().setJavaScriptEnabled(true); //加上这句话才能使用javascript方法
webView.getSettings().setDomStorageEnabled(true);
webView.requestFocus();
webView.getSettings().setUseWideViewPort(true);
webView.getSettings().setLoadWithOverviewMode(true);
webView.getSettings().setSupportZoom(true);
webView.getSettings().setBuiltInZoomControls(true);
webView.getSettings().setSavePassword(false);
webView.getSettings().setSaveFormData(false);
webView.getSettings().setSupportZoom(false);
而在H5页面里面代码如下
<html> <head> <meta charset="UTF-8"> <title>交互Demo</title> <meta content="initial-scale=1.0,user-scalable=no,maximum-scale=1,width=device-width" name="viewport"> </head> <body> getUserinfo: <div id="userinfo"></div> <input value="立即报名" type="button" onClick="baoming();" /><br> <script> /*var rs=window.om.getUserinfo(); document.getElementById('userinfo').innerHTML=rs;*/ var rs=window.demo.getUserinfo(); var obj = eval ("(" + rs + ")"); if(obj.status){ document.getElementById('userinfo').innerHTML=obj.data.nickname; } function baoming(){ if(window.demo.needLogin()){ location.href='my_demo1.html'; } } </script> </body> </html>
然后接下来就是在Android里面实现交互的东西了:
webView.addJavascriptInterface(new PayJavaScriptInterface(), "demo");这句话就是给android添加javascript代码,让H5页面能够调用,第二个参数对应的是H5里面的"
“window”后面的值。
在activity里面实现H5里面的方法,注意方法之前要加上注解“@JavascriptInterface”,当android:targetSdkVersion的数值小于17无所谓,当大于等于17时就必须添加,否则不会调用方法里面的java代码。
final class PayJavaScriptInterface {
PayJavaScriptInterface() {
}
@JavascriptInterface
public String getUserinfo() {
}
@JavascriptInterface
public boolean needLogin() {
}
}
到此,就可以实现交互功能,如果Android需要提交数据给H5的话,就可以把所需的内容转为Json串即可。
如何提交?
- h5
- h5
- h5
- H5
- H5
- h5
- h5
- h5
- h5
- H5
- H5
- H5仿吴亦凡参军H5
- h5页面
- H5 start
- H5 localStorage
- h5画圆
- Android H5
- H5规范
- 巧用KVC更改iOS系统UISearchBar的字体颜色和样式
- SessionFactory中getCurrentSession地址的对比
- IOS 委托和协议区别和联系
- 微信浏览器禁止app下载链接怎么办
- pku1141 Brackets Sequence 区间DP
- h5
- Java并发编程:线程池的使用
- 怎么在互联网公司带团队
- 解决Nginx的connect() to xxx.xx.xxx.xxx:2345 failed (13: Permission denied) while connecting to upstream
- 微信视频开发jquery mobile
- KNN 算法的python实现 迭代训练方式,将最近的测试样例作为训练样例扩大训练集
- COM控件快速入门
- [OpenType 1.70 笔记] SVG 表
- LeetCode102—Binary Tree Level Order Traversal