ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
## 跨端方案 https://juejin.cn/post/7027365056342048805 跨端指的是跨客户端,移动端(web、小程序、安卓端、IOS 端);------PC端(Widnow、MAC、Linux等) 跨端方案主要分为三种: >一种是使用webview方案,代表技术是Hybird混合开发; 一种是将JavaScriptCore引擎作为虚拟机的方案,代表框架是React Native; 另一种是使用自研的dart虚拟机方案,代表框架是Flutter ### webview方案-Hybird混合app - Hybrid App---webview实现渲染跨端(绘制、时间), JS Bridge实现逻辑跨端 >用H5开发,但是运行在app内部的webview中,通过app端提供的jsbridge,来调用一些原生的方法,一套代码同时运行在安卓和IOS上,达到多端一致的效果,且不受制于app发版的限制,可随时发布。 但是hybrid app的性能无法与native app比拟,用户体验方面会比native app差一些。 Hybrid,即 H5 和原生混合开发。Hybrid 框架提供各种 API、打包工具、调试工具,实际开发中不会使用到原生技术,只会使用 H5 和 JS 来编写,通过 JS 来调用框架提供的 API。 使用 Hybrid 相关技术的框架有,如PhoneGap、Cordova、Ionic。 ![](https://img.kancloud.cn/00/35/003543ae9a0d5ff58d51dc54627cd1b7_554x266.png) - * webview 概念: webview是一个承载网页的容器,能渲染web网页,native开发也可以对webview 进行功能定制, 修改和扩展js 执行环境的宿主对象、拦截webview发起的请求、控制缓存、等功能。通过这些能力,可以实现native 和h5之间的信息互通。 内核:Android 和IOS的webview基于webkit,但是针对不同的平台,app开发会采用不同的方案。 - * jsBridge 指的是封装了一系列用于native 与h5之间的数据交互的js方法。常见的交互如下 1. native重写弹窗的行为,alert、prompt、confirm。 2. URL schema ### 原生渲染-Native app - 原生渲染-- JS Bridge不仅实现逻辑跨端,渲染通过 JS Bridge 调用 IOS 和安卓原生组件来实现,框架如React Native、Weex > 即原生app,安卓和IOS使用不同语言开发,性能最好,用户体验最佳,并且可以完整的使用所有native端的功能; > > 但上手成本较高,安卓与IOS使用不同的语言,不同端之间互不相通,开发成本相较于web会更高; > > 并且发布更新需要通过app市场的审核,发版周期大约在一周左右,更新较慢; ### 自研渲染引擎 - 自研渲染引擎 --- Flutter 不仅可以支持移动端还有 PC 端。它的渲染基于绘图库(skia)来绘制的。逻辑跨端是基于自研的 Dart vm 来跨端。Flutter 使用编程语言即 Dart 的方法来避免 JsBridge 引起的性能问题 ## 京东 taro和Uni-app https://blog.csdn.net/qq_35430000/article/details/119346964 - 京东 taro Taro 是一个开放式跨端跨框架解决方案,支持使用 React、Vue等框架来开发小程序、H5、APP等应用。 APP开发基于 Facebook的开源项目React Native,开发语言可以使用vue,但最终生产的代码是react。 开发中不仅需要代码调试而且还有底层交互,所以使用taro需要具备react、原生技能 - Uni-app Uni-app是一个开放式跨端跨框架解决方案,使用 Vue框架来开发小程序、H5、APP等应用。 uni-app支持webview与weex双重渲染,h5页面使用webview渲染,原生部分采用nvue weex进行渲染,相当于把h5的技术与rn的技术做了一个结合。 由于原生是基于weex的,然后下一层才是通信bridge。多了一层就多了一份性能问题,所以性能方面会比ReactNative略差一点。