uni-app跨平台前端框架介绍(终极跨平台解决方案)

1. 移动端跨平台开发方案介绍

(1) 流行框架比较

(2) 框架共同点:每个框架几乎都包含以下特性

  • 使用 HTML5 + CSS + JavaScript 开发;
  • 跨平台重用代码;
  • 丰富的UI库;
  • 提供访问设备原生API的 JavaScript API 包装器;
  • 解决原生开发中机型适配的难题;
  • 提供打包、部署的工具或服务;
  • 都需要学习自身封装的 JavaScript API;

(3) 选择框架的要求

  • 性能:运行速度快;
  • UI:提供接近原生的UI体验;
  • 插件多,文档丰富,开发效率高,容易扩展和维护;
  • 满足业务需求;

2. uni-app推出背景(当前跨平台开发的主要问题)

github地址:uni-app-github

  • 多端泛滥
    当前是一个多端泛滥的时代,除了原有的Android、IOS、H5、小程序平台,支付宝、百度、淘宝、今日头条等都陆续发布了自己的小程序和快应用规范,用户被众多平台分散,为了覆盖更多的用户,开发者需要更多的学习、适配和维护成本。
  • 体验不好
    过去的跨平台框架在app上的体验并不好。
  • 生态不丰富
    过去的跨平台框架在周边的生态一直不丰富,开发者很难获取更好更多的SDK。

选择uniapp进行跨平台开发的原因

  • 资金:uniapp开源免费。APICloud闭源,免费版有限制;AppCan闭源,商业化产品,免费版限制太多。
  • 技术及生态:uniapp使用了流行的vue.js开发,生态强大,h5开发效率高。Ionic使用AngularJS,学习曲线陡峭;React Native学习成本高;Flutter使用Dart,属于小众语言,一切都要重新学习(不利于后续维护和个人发展)。
  • 性能及兼容:uni-app多端发布,无限制;若无特殊需求,基本可以完成原生APP90%的任务。
    另外,Cordova使用前端框架 famous 或 Framework7,生态成熟,有很多工具可搭配使用,开源代码可自由定制;DCloud使用前端框架MUI,国产开源免费,性能不错,并提供云服务帮助打包和部署、测试,降低了技术门槛和提升了开发效率,而且拥有插件市场,生态丰富,也可以自己开发插件。这两种也是不错的选择方案,可根据具体情况来选择。

3. uni-app介绍

uni-app 是一个使用 Vue.js 开发跨平台应用的前端框架,开发者编写一套代码,可编译到Android、iOS、H5、小程序等多个平台。uni-app在跨端数量、拓展能力、性能体验、周边生态、学习成本、开发成本等6大关键指标上拥有极强的竞争优势,解决了现有跨平台框架存在的问题。
vuejs学习-英文版
vuejs学习-中文版

4. uni-app主要特征

4.1 跨平台更多且不牺牲平台特色

(1)真正做到"一套代码多端发行":一套代码可发布到Android、IOS、H5、小程序等多个平台,不需要对不同平台的代码进行维护和升级。
(2)平台能力不受限:通过条件编译+平台特有的API调用,可以优雅地在为某平台写个性化代码,调用专有能力而不影响其他平台。

4.2 运行体验更好

(1)组件和api与微信小程序一致:微信小程序中性能极好的Hybird框架,使加载新页面速度更快。
(2)兼容weex原生渲染:App端支持weex原生渲染,可支持更流畅的用户体验。

4.3 通用前端技术栈,学习成本更低

(1)学习成本低:基于通用前端技术栈,采用vue的语法+微信小程序的api
(2)内嵌mpvue开源框架:mpvue项目可直接变成uniapp

4.4 开发生态,组件更丰富

(1)支持通过npm安装第三方包
(2)支持微信小程序自定义组件及JS SDK
(3)兼容mpvue组件及项目(内嵌mpvue开源框架)
(4)App端支持和原生混合编码
(5)插件丰富,DCloud将发布插件到市场


uni-app特征.png

5. uni-app功能框架

uni-app功能框架图.png

6.uni-app工程相关流程

6.1 创建uni-app

(1)打开HBuilderX -> 文件 -> 新建 -> 项目

创建-1.png

(2)选择uni-app -> 填写项目名称 -> 选择模板(以默认模板为例) -> 创建完成
创建-2.png

(3)新建项目目录如图所示
默认项目目录.png

备注:项目目录结构说明可移步至uin-app工程介绍

6.2 运行uni-app

6.3 发布uni-app

6.3.1 打包为原生app-云打包

(1)在HBuilderX工具栏,点击发行,选择原生app-云打包,如下图:

云打包.png

(2)出现如下界面,点击打包即可:
打包.png

(3)云打包成功
云打包成功.png

(4)控制台信息:获取下载地址并下载apk
控制台信息.png

备注:HBuilder的云端打包虽然方便,但不能打超过40M的包。通过HTML5+SDK的本地打包方案可以解决打包大小限制的问题(TML5 Plus SDK,简称5+SDK,是把HTML5+运行环境(5+ runtime)封装为原生SDK)。

6.3.2 打包为原生app-(本地)离线打包

(1)在HBuilderX工具栏,点击发行,选择原生app-本地打包,如下图,点击即可生成离线打包资源。

本地打包.png

(2)控制台信息:获取离线打包资源本地路径
image.png

备注:在 HBuilderX 生成离线打包资源后参考 离线打包(或参考其他用户写的 离线打包日记),即可进行离线打包。实质上最终还是在android开发平台androidStudio中导入离线打包生成的项目代码并进行修改,这部分的文档学习和修改成本极大。
(3)报错:uni-app运行环境(sdk)版本和编译器(HBuilderX)版本不一致的问题
image.png

6.3.3 发布为H5

在HBuilderX工具栏,点击发行,选择网站-H5手机版,如下图,点击即可生成 H5 的相关资源文件,保存于 unpackage 目录。


H5手机版.png

6.3.4 发布为小程序

(1)发布为微信小程序
(2)发布为百度小程序
(3)发布为支付宝小程序
(4)发布为支付宝小程序
说明:uni--app项目在HBuilderX上发布为小程序,生成对应小程序项目代码,在各小程序开发平台导入生成的小程序项目代码并测试项目代码运行正常后,按照各平台的标准流程进行上传代码、提交审核等操作,即可完成各小程序的发布工作。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,214评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,307评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,543评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,221评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,224评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,007评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,313评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,956评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,441评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,925评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,018评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,685评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,234评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,240评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,464评论 1 261
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,467评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,762评论 2 345

推荐阅读更多精彩内容

  • 博客原文链接 Android百大框架排行榜(转) 说明: 无聊写一篇笔记式文章. 精力有限,很多错误之处,受时间与...
    码农朱同学阅读 2,621评论 0 27
  • 前言: mpvue ,这是一个使用Vue.js开发小程序的前端框架。使用此框架,开发者将得到完整的 Vue.js ...
    90后的思维阅读 4,996评论 0 13
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,022评论 4 62
  • 复盘7.1 钻石行动线下活动 面向阳光,面向未来(我对“最好”有些误解,哈哈哈,最好的有很多个) 我做得最好的几点...
    大颖darling阅读 297评论 2 2
  • 今天被专家当砖家 公司最近内控和固定资产脑壳大 又来新的制度 要快速适应才好 最近几天听到最多的就是中国经济稳中进...
    c9d342511f99阅读 136评论 0 0