由于 Html和Js 受浏览器安全策略的限制,无法精准控制所有本地硬件,如本地文件读写或者本地打印机等的访问,这时候,就需要使用这样的思想去做扩展。
JsBridge配置方法请看第一篇H5页面与原生交互的方法之 一、addJavascriptInterface
1、指定处理者
java创建处理者
js指定处理者
html
2、不指定处理者
java添加默认处理者
js发送信息
html
1、指定处理者
js创建处理者
java指定处理者
2、不指定处理者
js接收native发送的消息
java发送消息
压力挺大的,学的东西很多。先来说一些基础的知识1、布局rem,vw,vh,em等2、touch、click事件移动端不在是鼠标事件,改为touch事件。click事件在移动端有300ms的延迟,可以用fastclick解决。手势问题可以用hammer.js解决。3、兼容性移动端机器比PC端复杂的多,而且国内基于Android分裂出许多分支。低版本IOS flex布局有问题,不支持webp。低版本Andriod,不支持fetch,不支持ES6特性。解决办法用babel-ployfill和系统区分,IOS不下发webp。4、jsBridgejsBridge有点像桥接模式,建立起前端和客户端的通信。jsBridge的原理是什么,可以查看这篇文章。成楠Peter:hybird App原理20 赞同 · 2 评论文章5、字体移动端不像PC端用微软雅黑或者使用苹果自带字体就行。又因为字体包太大,不能通过网络下载,所以字体的选择就很总要,并且在英文字体和中文字体间差异很多,经常会出一些诡异的bug。在前端工程化中使用特殊字体7 赞同 · 2 评论文章6、前端框架性能不再像PC端一样,不用关心react的性能问题了。必须在shouldUpdateComponent拦截某些渲染,否则性能将收到严重的影响。所以对开发者编写的代码的要求更高。7、webview的机制比如为什么回退到上一个页面,页面不会自动刷新(与PC浏览器的机制不一样),为什么这样设计。