uni-app跨平臺(tái)前端框架介紹(終極跨平臺(tái)解決方案)

1. 移動(dòng)端跨平臺(tái)開發(fā)方案介紹

(1) 流行框架比較

(2) 框架共同點(diǎn):每個(gè)框架幾乎都包含以下特性

  • 使用 HTML5 + CSS + JavaScript 開發(fā)墓塌;
  • 跨平臺(tái)重用代碼羹铅;
  • 豐富的UI庫霞捡;
  • 提供訪問設(shè)備原生API的 JavaScript API 包裝器坐漏;
  • 解決原生開發(fā)中機(jī)型適配的難題;
  • 提供打包、部署的工具或服務(wù)赊琳;
  • 都需要學(xué)習(xí)自身封裝的 JavaScript API街夭;

(3) 選擇框架的要求

  • 性能:運(yùn)行速度快;
  • UI:提供接近原生的UI體驗(yàn)躏筏;
  • 插件多板丽,文檔豐富,開發(fā)效率高趁尼,容易擴(kuò)展和維護(hù)埃碱;
  • 滿足業(yè)務(wù)需求;

2. uni-app推出背景(當(dāng)前跨平臺(tái)開發(fā)的主要問題)

github地址:uni-app-github

  • 多端泛濫
    當(dāng)前是一個(gè)多端泛濫的時(shí)代,除了原有的Android弱卡、IOS乃正、H5、小程序平臺(tái),支付寶婶博、百度瓮具、淘寶、今日頭條等都陸續(xù)發(fā)布了自己的小程序和快應(yīng)用規(guī)范,用戶被眾多平臺(tái)分散,為了覆蓋更多的用戶,開發(fā)者需要更多的學(xué)習(xí)凡人、適配和維護(hù)成本名党。
  • 體驗(yàn)不好
    過去的跨平臺(tái)框架在app上的體驗(yàn)并不好。
  • 生態(tài)不豐富
    過去的跨平臺(tái)框架在周邊的生態(tài)一直不豐富,開發(fā)者很難獲取更好更多的SDK挠轴。

選擇uniapp進(jìn)行跨平臺(tái)開發(fā)的原因

  • 資金:uniapp開源免費(fèi)传睹。APICloud閉源,免費(fèi)版有限制岸晦;AppCan閉源欧啤,商業(yè)化產(chǎn)品,免費(fèi)版限制太多启上。
  • 技術(shù)及生態(tài):uniapp使用了流行的vue.js開發(fā)邢隧,生態(tài)強(qiáng)大,h5開發(fā)效率高冈在。Ionic使用AngularJS倒慧,學(xué)習(xí)曲線陡峭;React Native學(xué)習(xí)成本高包券;Flutter使用Dart纫谅,屬于小眾語言,一切都要重新學(xué)習(xí)(不利于后續(xù)維護(hù)和個(gè)人發(fā)展)溅固。
  • 性能及兼容:uni-app多端發(fā)布付秕,無限制;若無特殊需求侍郭,基本可以完成原生APP90%的任務(wù)盹牧。
    另外俩垃,Cordova使用前端框架 famous 或 Framework7励幼,生態(tài)成熟汰寓,有很多工具可搭配使用,開源代碼可自由定制苹粟;DCloud使用前端框架MUI有滑,國產(chǎn)開源免費(fèi),性能不錯(cuò)嵌削,并提供云服務(wù)幫助打包和部署毛好、測試,降低了技術(shù)門檻和提升了開發(fā)效率苛秕,而且擁有插件市場肌访,生態(tài)豐富,也可以自己開發(fā)插件艇劫。這兩種也是不錯(cuò)的選擇方案吼驶,可根據(jù)具體情況來選擇。

3. uni-app介紹

uni-app 是一個(gè)使用 Vue.js 開發(fā)跨平臺(tái)應(yīng)用的前端框架店煞,開發(fā)者編寫一套代碼,可編譯到Android蟹演、iOS、H5顷蟀、小程序等多個(gè)平臺(tái)酒请。uni-app在跨端數(shù)量、拓展能力鸣个、性能體驗(yàn)羞反、周邊生態(tài)、學(xué)習(xí)成本囤萤、開發(fā)成本等6大關(guān)鍵指標(biāo)上擁有極強(qiáng)的競爭優(yōu)勢,解決了現(xiàn)有跨平臺(tái)框架存在的問題昼窗。
vuejs學(xué)習(xí)-英文版
vuejs學(xué)習(xí)-中文版

4. uni-app主要特征

4.1 跨平臺(tái)更多且不犧牲平臺(tái)特色

(1)真正做到"一套代碼多端發(fā)行":一套代碼可發(fā)布到Android、IOS阁将、H5膏秫、小程序等多個(gè)平臺(tái),不需要對(duì)不同平臺(tái)的代碼進(jìn)行維護(hù)和升級(jí)。
(2)平臺(tái)能力不受限:通過條件編譯+平臺(tái)特有的API調(diào)用,可以優(yōu)雅地在為某平臺(tái)寫個(gè)性化代碼,調(diào)用專有能力而不影響其他平臺(tái)做盅。

4.2 運(yùn)行體驗(yàn)更好

(1)組件和api與微信小程序一致:微信小程序中性能極好的Hybird框架,使加載新頁面速度更快缤削。
(2)兼容weex原生渲染:App端支持weex原生渲染,可支持更流暢的用戶體驗(yàn)。

4.3 通用前端技術(shù)棧,學(xué)習(xí)成本更低

(1)學(xué)習(xí)成本低:基于通用前端技術(shù)棧,采用vue的語法+微信小程序的api
(2)內(nèi)嵌mpvue開源框架:mpvue項(xiàng)目可直接變成uniapp

4.4 開發(fā)生態(tài),組件更豐富

(1)支持通過npm安裝第三方包
(2)支持微信小程序自定義組件及JS SDK
(3)兼容mpvue組件及項(xiàng)目(內(nèi)嵌mpvue開源框架)
(4)App端支持和原生混合編碼
(5)插件豐富,DCloud將發(fā)布插件到市場


uni-app特征.png

5. uni-app功能框架

uni-app功能框架圖.png

6.uni-app工程相關(guān)流程

6.1 創(chuàng)建uni-app

(1)打開HBuilderX -> 文件 -> 新建 -> 項(xiàng)目

創(chuàng)建-1.png

(2)選擇uni-app -> 填寫項(xiàng)目名稱 -> 選擇模板(以默認(rèn)模板為例) -> 創(chuàng)建完成
創(chuàng)建-2.png

(3)新建項(xiàng)目目錄如圖所示
默認(rèn)項(xiàng)目目錄.png

備注:項(xiàng)目目錄結(jié)構(gòu)說明可移步至uin-app工程介紹

6.2 運(yùn)行uni-app

6.3 發(fā)布uni-app

6.3.1 打包為原生app-云打包

(1)在HBuilderX工具欄吹榴,點(diǎn)擊發(fā)行亭敢,選擇原生app-云打包,如下圖:

云打包.png

(2)出現(xiàn)如下界面图筹,點(diǎn)擊打包即可:
打包.png

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

(4)控制臺(tái)信息:獲取下載地址并下載apk
控制臺(tái)信息.png

備注:HBuilder的云端打包雖然方便帅刀,但不能打超過40M的包让腹。通過HTML5+SDK的本地打包方案可以解決打包大小限制的問題(TML5 Plus SDK,簡稱5+SDK扣溺,是把HTML5+運(yùn)行環(huán)境(5+ runtime)封裝為原生SDK)骇窍。

6.3.2 打包為原生app-(本地)離線打包

(1)在HBuilderX工具欄,點(diǎn)擊發(fā)行锥余,選擇原生app-本地打包腹纳,如下圖,點(diǎn)擊即可生成離線打包資源驱犹。

本地打包.png

(2)控制臺(tái)信息:獲取離線打包資源本地路徑
image.png

備注:在 HBuilderX 生成離線打包資源后參考 離線打包(或參考其他用戶寫的 離線打包日記)嘲恍,即可進(jìn)行離線打包。實(shí)質(zhì)上最終還是在android開發(fā)平臺(tái)androidStudio中導(dǎo)入離線打包生成的項(xiàng)目代碼并進(jìn)行修改雄驹,這部分的文檔學(xué)習(xí)和修改成本極大佃牛。
(3)報(bào)錯(cuò):uni-app運(yùn)行環(huán)境(sdk)版本和編譯器(HBuilderX)版本不一致的問題
image.png

6.3.3 發(fā)布為H5

在HBuilderX工具欄,點(diǎn)擊發(fā)行医舆,選擇網(wǎng)站-H5手機(jī)版俘侠,如下圖,點(diǎn)擊即可生成 H5 的相關(guān)資源文件彬向,保存于 unpackage 目錄兼贡。


H5手機(jī)版.png

6.3.4 發(fā)布為小程序

(1)發(fā)布為微信小程序
(2)發(fā)布為百度小程序
(3)發(fā)布為支付寶小程序
(4)發(fā)布為支付寶小程序
說明:uni--app項(xiàng)目在HBuilderX上發(fā)布為小程序,生成對(duì)應(yīng)小程序項(xiàng)目代碼娃胆,在各小程序開發(fā)平臺(tái)導(dǎo)入生成的小程序項(xiàng)目代碼并測試項(xiàng)目代碼運(yùn)行正常后遍希,按照各平臺(tái)的標(biāo)準(zhǔn)流程進(jìn)行上傳代碼、提交審核等操作里烦,即可完成各小程序的發(fā)布工作凿蒜。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市胁黑,隨后出現(xiàn)的幾起案子废封,更是在濱河造成了極大的恐慌,老刑警劉巖丧蘸,帶你破解...
    沈念sama閱讀 206,311評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件漂洋,死亡現(xiàn)場離奇詭異,居然都是意外死亡力喷,警方通過查閱死者的電腦和手機(jī)刽漂,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來弟孟,“玉大人贝咙,你說我怎么就攤上這事》髂迹” “怎么了庭猩?”我有些...
    開封第一講書人閱讀 152,671評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵窟她,是天一觀的道長。 經(jīng)常有香客問我蔼水,道長震糖,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,252評(píng)論 1 279
  • 正文 為了忘掉前任徙缴,我火速辦了婚禮试伙,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘于样。我一直安慰自己,他們只是感情好潘靖,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,253評(píng)論 5 371
  • 文/花漫 我一把揭開白布穿剖。 她就那樣靜靜地躺著,像睡著了一般卦溢。 火紅的嫁衣襯著肌膚如雪糊余。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,031評(píng)論 1 285
  • 那天单寂,我揣著相機(jī)與錄音贬芥,去河邊找鬼。 笑死宣决,一個(gè)胖子當(dāng)著我的面吹牛蘸劈,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播尊沸,決...
    沈念sama閱讀 38,340評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼威沫,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了洼专?” 一聲冷哼從身側(cè)響起棒掠,我...
    開封第一講書人閱讀 36,973評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎屁商,沒想到半個(gè)月后烟很,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,466評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蜡镶,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,937評(píng)論 2 323
  • 正文 我和宋清朗相戀三年雾袱,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片帽哑。...
    茶點(diǎn)故事閱讀 38,039評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡谜酒,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出妻枕,到底是詐尸還是另有隱情僻族,我是刑警寧澤粘驰,帶...
    沈念sama閱讀 33,701評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站述么,受9級(jí)特大地震影響蝌数,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜度秘,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,254評(píng)論 3 307
  • 文/蒙蒙 一顶伞、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧剑梳,春花似錦唆貌、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至追逮,卻和暖如春酪刀,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背钮孵。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來泰國打工骂倘, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人巴席。 一個(gè)月前我還...
    沈念sama閱讀 45,497評(píng)論 2 354
  • 正文 我出身青樓历涝,卻偏偏與公主長得像,于是被迫代替她去往敵國和親情妖。 傳聞我的和親對(duì)象是個(gè)殘疾皇子睬关,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,786評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • 博客原文鏈接 Android百大框架排行榜(轉(zhuǎn)) 說明: 無聊寫一篇筆記式文章. 精力有限,很多錯(cuò)誤之處毡证,受時(shí)間與...
    碼農(nóng)朱同學(xué)閱讀 2,621評(píng)論 0 27
  • 前言: mpvue 电爹,這是一個(gè)使用Vue.js開發(fā)小程序的前端框架。使用此框架料睛,開發(fā)者將得到完整的 Vue.js ...
    90后的思維閱讀 4,998評(píng)論 0 13
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫丐箩、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,024評(píng)論 4 62
  • 復(fù)盤7.1 鉆石行動(dòng)線下活動(dòng) 面向陽光恤煞,面向未來(我對(duì)“最好”有些誤解屎勘,哈哈哈,最好的有很多個(gè)) 我做得最好的幾點(diǎn)...
    大穎darling閱讀 297評(píng)論 2 2
  • 今天被專家當(dāng)磚家 公司最近內(nèi)控和固定資產(chǎn)腦殼大 又來新的制度 要快速適應(yīng)才好 最近幾天聽到最多的就是中國經(jīng)濟(jì)穩(wěn)中進(jìn)...
    c9d342511f99閱讀 136評(píng)論 0 0