androidWebView套壳H5踩坑总结

本文讲述了在Android应用中使用WebView加载基于Vue框架的H5页面遇到的问题,包括X5内核首次加载失败导致的图片上传功能失效。通过分析,发现是腾讯X5内核的异步加载机制导致的问题。最终,通过检测内核加载状态并自启动解决首次加载问题,实现了应用的正常运行。
摘要由CSDN通过智能技术生成

由于公司审核要求,本来无app端的项目突然需要在短时间内提供android端app。所以最快速的方式就是H5套壳啦。

项目经理跟我说这个需求的时候我给出的工期是大约一个周,毕竟要进行一些交互上的转换吗,比方说dialog,js调用等,但实际的情况说明自己的想法还是太年轻。

进入正题。套壳当然要跟前端对接,前端给出的工期大约是两个周。因为是将微信公众号端的功能移植到android端,困难点有两个:一是将调用微信api的功能转换为android原生实现;二是前端vue框架怎样与android端通信的问题(vue框架发布后为框架自动编译的文件,为一个index.html文件和其它编译整理过得js、css等文件--及所见非所得。而我要与前端打交道的就是这个index.html文件)。首先我们尝试了传统的加载html方式,只不过是将前端vue框架生成的静态代码放到了assets目录下,加载index.html,加载失败,报错:许多js无法调用。遂放弃。

考虑到前端使用了vue框架的问题,我们选择的是使用桥接模式进行尝试。工程导入jsbridge Library包,使用

BridgeWebView代替原WebView。通过webview.registerHandler()方法,通过js方法名参数与前端进行传参,通过回调方法进行返回参数。与之前一样还是使用vue静态代码加载,这里要说一下为什么要使用静态代码的问题:前端考虑框架的问题所以考虑将框架生成的代码都放到了android端这里(后期证明放不放这里都可以)。好吧,这样通过桥接的方式实现了通信但是比较奇葩的是,参数传递的问题。由于我们html首页需要瑜伽在部分字典数据,所以要讲数据暂存到android端&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值