Cordova 和 React-Native 是使用 Web 开发移动端的两大框架。 Cordova 是 Apache 旗下的。 React-Native 是 Facebook 旗下的在2013年发布的一个前端框架。二者皆开源。 下面的内容主要记录了这两大框架的优劣。以及移动端开发中有关 WebView 比较可行的几种选择。 Cordova文档 , React-Native文档 。css
对比
跨平台特性html
功能支持前端
风险程度react
开发成本android
运行速度ios
WebView问题
由于 Android WebView 和 IOS 的 UIWebView 内存泄露的问题。因此在选择内核的时候,使用原生的 WebView 内存泄露很明显。而且不易解决。 IOS8+ 以前,一样有大量内存泄露。分别看一下Android和IOS系统比例图:web
若是要考虑 Android4.4 如下的设备和 IOS8+ 设备。由于先后的运行内核不一。性能不一。以及国内厂商对于系统的深度定制,不一样的渲染。 app 最好有专门的内核。保证拥有一致性的体验。有以下几个选择:react-native
使用 Crosswalk 开源 web 引擎。
优点api
使用 Crosswalk 能够保持平台的一致性。 劣势安全
打包后的 app 体积增长 20M-30M 。
使用腾讯 TBS 浏览服务
优点
劣势
优劣对比
cordova ionic : 优点: ios 和 android 基本上能够共用代码,纯web思惟,开发速度快,简单方便,一次编码,处处运行,若是熟悉web开发,则开发难度较低。 文档很全,系统级支持封装较好,全部UI组件都是有html模拟,能够统一使用。 可实如今线更新 容许加载动态加载web js 文档多,开发者多,视频教程多 容易学习 遇到问题容易解决 技术成熟 劣势: 占用内存高一些(不过手机内存都大了不影响),不适合作游戏类型app, web技术没法解决一切问题,对于比较耗性能的地方没法利用native的思惟实现优点互补,如高体验的交互,动画等。 react-native : 优点: 一、虽然不能作到一处编码处处运行,可是基本上即便是两套代码,也是相同的jsx语法,使用js进行开发。用户体验,高于html,开发效率较高 二、flexbox 布局 听说比native的自适应布局更加简单高效 可实如今线更新 2015.7.28 AppStore审核政策调整:容许运行于JavascriptCore的动态加载代码 更贴近原生开发 劣势: 一、(引)对开发人员要求较高,不是懂点web技术就行的,当官方封装的控件、api没法知足需求时 就必然须要懂一些native的东西去扩展,扩展性仍然远远不如web,也远远不如直接写Native code。
二、(引)官方说得很隐晦:learn once, write anywhere。人家可没说run anywhere。事实上,从官方的api来看SliderIOS,SwitchIOS..等等这些控件,以后势必会出现SliderAndroid,SwitchAndroid...,也就是极可能针对不一样的平台会须要写多套代码。
三、发展还不成熟,目前不少ui组件只有ios的实现,android的须要本身实现。
(引)从Native到Web,要作不少概念转换,势必形成双方都要妥协。好比web要用一套CSS的阉割版,Native经过css-layout拿到最终样式再转换成native原生的表达方式(好比iOS的Constraint\origin\Center等属性),再好比动画。另外,若Android和iOS都要作相同的封装,概念转换就更复杂 五、文档还不够完整 学习曲线偏高 4.文档少 学习起来困难