Android如何与H5的混合开发实战篇

现在的开发趋势都是混合开发,整个APP界面不只是用安卓原生代码来搭建,还用到了网页,绝大多数的电商类APP比如:淘宝,美团,京东等等。商品列表页用安卓原生代码写的,详情页用网页 ,安卓代码就要跟网页的JavaScript(H5)代码进行交互。像这样原生嵌套网页,彼此间传递数据就是属于混合开发

安卓代码如何与网页的JavaScript代码进行通信

为了更直观,更生动的演示效果。先做点准备工作。

1.安装Tmocat服务器

用于模拟网络请求,获取服务端数据,以及部署网页让APP去加载该网页

1.1登录Apache Tomcat官网,地址 http://tomcat.apache.org ,点击左边的Download,选择需要下载的版本。

1.2 右键Finder—>前往文件夹—> ~/Library/ 目录下,把下载完成的压缩包解压,命名为Tomcat,拷贝到这里。


1.3 打开终端,输入cd /Users/jxxxxx/Library/Tomcat/bin,然后回车

(ps:jxxxxx是你mac电脑的用户名。也可以直接输入 cd,然后把Tomcat的bin目录拖到终端即可)

1.4再输入:./startup.sh ,回车


如果出现Permission denied就是操作失败,缺少权限。再输入 sudo chmod 755 *.sh,回车,接着输入 ./startup.sh,就可以启动Tomcat了:

出现Tomcat started就说明服务器打开了。

(ps:sudo sh shutdown.sh 关闭服务器,然后再输入sudo sh startup.sh 打开服务器,表示服务器重启)

1.5打开我们的浏览器,然后网址输入  http://localhost:8080/,如果出现一只猫,则证明配置成功~

(Tomcat部署在自己电脑上,所以可以用localhost代替具体的ip地址)

2.安装Visual Studio Code(简称vscode)

很多开发工具都可以编写html代码,我习惯用的是Visual Studio Code,安装很简单就不演示了。官方下载地址:https://code.visualstudio.com/#alt-downloads 选择自己的系统版本,安装时一直下一步即可,安装完成后直接运行code.exe,到此准备工作已完成。

3.打开vscode,新建index.html文件撸代码。

3.1搭建h5界面以及效果图:



3.2 JavaScript代码部分,如下图:


3.3 新建一个yanhuomatiou2015.json文件,并构造一些数据。然后把yanhuomatiou2015.json和index,html文件拷贝到Tomcat里,重启一下Tomcat,如下图:


4.接下来就是android端代码了(重点)

4.1搭建xml界面,下图:


4.2 android与h5交互,必须要有个通信的桥梁类,新建个桥梁类,如下图:


4.3在MainActivity类中初始化控件,配置webview参数,如下图:


代码部分也已完成,先运行看效果:

效果图分析:

1.当点击蓝色按钮(js调用android方法)JavaScript的jsCallandroid方法会去调用android的showToast方法并传参,然后在底部弹出的toast:


2.当点击绿色按钮( js调用android方法再callback(回调)js方法),JavaScript的jsCallandroidCallBackJs方法会去调用android的getrequestData方法并传参,在android的getrequestData方法里发起异步请求,拿到数据:


接着回到主线程,再回调JavaScript的receiveAndroidData方法把获取回来的数据传为参数传进去,弹出alter:


3.当点击灰色按钮(android调用js方法)android的onClick方法会去调用JavaScript的showMessage方法并传参,弹出alter:


是不是so easy,完整的demo地址:https://github.com/yanhuomatou2015/AndroidHtml5.git   在完整的demo里,为了让大家更好的理解android如何与h5交互的,我把前端页面index.html的代码,放到了app ->src->main->assets下,方便前端工程师参考。

今天的分享结束了,再见~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。

相关阅读更多精彩内容

  • Java后端学习笔记 术语 三者的关系:JDK包含JRE,而JRE包含JVM; Java开发工具包(JDK):程序...
    ShuoyuanLiu阅读 6,230评论 0 0
  • 久违的晴天,家长会。 家长大会开好到教室时,离放学已经没多少时间了。班主任说已经安排了三个家长分享经验。 放学铃声...
    飘雪儿5阅读 12,240评论 16 22
  • 今天感恩节哎,感谢一直在我身边的亲朋好友。感恩相遇!感恩不离不弃。 中午开了第一次的党会,身份的转变要...
    余生动听阅读 13,613评论 0 11
  • 可爱进取,孤独成精。努力飞翔,天堂翱翔。战争美好,孤独进取。胆大飞翔,成就辉煌。努力进取,遥望,和谐家园。可爱游走...
    赵原野阅读 8,543评论 1 1
  • 在妖界我有个名头叫胡百晓,无论是何事,只要找到胡百晓即可有解决的办法。因为是只狐狸大家以讹传讹叫我“倾城百晓”,...
    猫九0110阅读 8,968评论 7 3

友情链接更多精彩内容