# 初识hybrid
# 什么是混合开发
混合了native技术和web技术进行开发的移动应用
在移动互联网时代来临之后,以微信、淘宝为代表的app迅速占据了我们的手机,诺基亚的迅速灭亡,苹果手机异军突起,以iOS、安卓的客户端开发需求迅速增大,导致iOS、安卓的工程师们成了香饽饽,工资高,工作好找。在之间还经历过一段windows phone,后来随着诺基亚的灭亡,也就死透了。
现在只剩下安卓和iOS两大阵营了,同样由于是两个不同的系统,同样的一个应用需要开发两遍,抛开人力成本的成倍增加,由于是不同团队所开发,所以在细节的实现上,和应用的一致性都会产生问题。
所以急需一种只需开发一次,能够运行两端的技术方案。在PC端,浏览器无疑是最好的跨端应用解决方案,我们只需开发一个web应用,只要在windows、mac、linux上有浏览器就可以运行。
# 流行的混合开发方案
# 基于WebView UI (JSBridge)
是最初也是最核心的解决方案,目前市面上主流的app多数都采用了这种方案,这种方案主要是通过jsbridge完成web端和native端的通信,从而赋予web端一些原生的能力
# 基于NativeUI(ReactNative、weex、flutter)
这种方案在赋予了web具有原生能力的基础上,进一步通过JSbridge将js解析成虚拟的节点树,来传递给native,并使用原生进行渲染的一个解决方案
# 小程序方案(微信、支付宝小程序)
也是通过jsbridge来实现的 ,他们对jsbridge进行了更加细致化的定制,并且隔离了它的js逻辑层,和UI的渲染层,形成了一个特殊的开发环境,从而加强了web和native的融合程度,提高了web端的执行性能
# Hybrid App本质
在原生app中,使用webview作为容器,来承载一个web页面
# Hybrid App 核心
原生 和 web端的双向通讯层(跨语言解决方案)JSBridge
← ts在react中的使用 JSBridge →