文章來源:小青年原創
發佈時間:2016-05-15
關鍵詞:mui,html5+
轉載需標註本文原始地址:http://zhaomenghuan.github.io...css
相信不少朋友初次接觸到dcloud
這邊的產品,通常都是hbuilder
和mui
,因此不少朋友對於dcloud
這邊的產品鏈的認識也是各不相同。我相信對於不少新手來講,初次使用dcloud
這邊的產品的第一感受必定是以爲這個東西很好卻無從下手,而後被一些新的概念轉得雲裏霧裏,而後就開始吐槽官方文檔,其實真的是文檔很差嗎?html
稍微有點基礎的開發者可能仔細去看看官方文檔,而後就能夠本身跟着文檔或者demo
作點小例子,然而不少人因爲是業務臨時須要才轉到跨平臺app
開發的,不少能夠說零基礎,即便有文檔也不定會看得懂,或者看了更暈,相信這部分開發者最期待的是有人手把手教最好,我見過不少開發者一上來一言不合就要例子,若是你讓他去看hello mui
,hello h5+
這兩個最精華的例子,他也許會以爲你在逗他。前端
其實這是由於咱們不少時候把精力搞分散了,沒有把力量集中起來去逐個突破,因此致使看起來感受處處是肉,啃起來處處是骨頭。哈哈,說了這麼多,你可能以爲是廢話,你也可能以爲說到你心理去了,若是你對dcloud
這邊的產品仍是有點不明不白,那但願你耐心看下面的分析,也請你等待我後續的基礎教程。html5
先把幾個經常使用的地址丟出來,由於你若是不想看我後面的,你直接去看這些也能夠!java
Dcloud官網:http://dcloud.io/android
Dcloud問答社區:http://ask.dcloud.net.cn/ios
Dcloud文檔彙總地址:http://ask.dcloud.net.cn/docs/git
Hello mui線上演示地址:http://www.dcloud.io/hellomui...github
Hello mui演示APP下載地址:
web
Hello 5+演示APP下載地址:
官方入門文檔(強烈推薦閱讀):
github地址:https://github.com/dcloudio/
html5+官網文檔:http://www.html5plus.org/doc/
5+ App開發Native.js入門指南:http://ask.dcloud.net.cn/arti...
Native.js示例彙總:http://ask.dcloud.net.cn/arti...
流應用開發指南:http://ask.dcloud.net.cn/arti...
當我列出上面的這些網址,我發現其實文檔並不算少,可是新手爲啥感受仍是很難呢?咱們會發現一個問題,官方文檔很分散,或許分散了致使開發者每次遇到問題查找文檔的範圍可能或許片面,其實也許他把全部的看完了就會找到答案,可是通常人恐怕沒那麼耐心吧,還有新手根本就沒有一個清晰的思路,因此很難快速去找到本身須要的文檔,因此我想官方文檔須要統一化具體化。
並且把這些大體瀏覽一下會發現內容真多,光html5+
裏面的標準就那麼多,一個個去認真學習完到猴年馬月去了,mui
組件也那麼多,難道也要一個個學習?還有native.js
、流應用等等,感受太多東西了,是否是瞬間以爲頭大了,哈哈,人老是有點偷懶的,若是有人幫咱們寫好現成的咱們直接用那就行了,因而dcloud
這塊想了不少辦法讓開發者去開心開發,hbuilder
豐富的語法提示、代碼快捷鍵、真機調試、演示demo
等等,mui
提供了豐富的組件,若是熟悉這些,開發起來仍是很快的。
前提是熟悉了之後纔會爽,若是不熟會感受什麼,學的東西太多,好比熟悉hbuilder
都要一段時間,而後熟悉html5+
,native.js
,頁面佈局和寫邏輯功能,對於新手來講,門坎兒並不小,這也是爲啥不少新手喜歡吐槽的緣由。由於當開發者熟悉了基本流程,會發現dcloud
這邊相對其餘平臺來講更開放,我的可定製空間更大,正由於愈加開放,那麼能夠應用的場景更加普遍,天然開發者問題更多,這也但願有能力的開發者可以去完善整個開發生態鏈。
這裏給各位的建議是先熟悉html5+
的經常使用api
,好比webview
,你只有對html5+
裏面的webview
有所瞭解,才能理解爲何mui
裏面會去封裝一些原生實現的組件如雙webview
的上拉刷新,tabbar
多子頁面底部導航等。mui裏面的這些組件經過對html5+ webview
的封裝,極大的提高了app
的性能。因爲用hbuilder
打包的app
默認包含html5+ rumtime
,因此當你使用hbuilder
構建app
項目時候,不管你是否引用mui
文件,無需引用任何其餘文件,你均可以調用html5+ api
和native.js
。也就是說即便你不用mui
,只用html5+
提供的api
,而後本身書寫html
,css
,js
文件就能夠打包生成一個app
。
固然考慮到大部分人時間精力有限,爲了讓開發者有較快的開發速度,官方提供了mui
框架,mui
框架擁有豐富的組件,能夠極大的提升開發效率。根據hello mui
演示app
提供的demo
,開發者能夠快速構建一個本身的app。
mui
是基於html5+
構建的框架,因此對於mui
中提供的原生組件,其適用環境是app
中的原生組件webview
,並不能在瀏覽器中運行,若是想用mui
構建瀏覽器上的手機站點,只能使用mui
中基於h5
的組件。對於原生實現的組件,mui
都有對應的h5
實現,因此開發者能夠作合理的處理,在書寫較少代碼的狀況下,實現多端發佈。
流應用是dcloud
這邊頗有創新的一個產品,流應用基於HTML5+
技術,可達到原生應用的體驗。同時基於DCloud
專利的流式發行和更新技術,能夠大幅壓縮安裝包並實現邊下邊用。讓App可5秒內完成下載、啓動。目前擁有6億手機用戶的360手機助手已經集成了DCloud
的流應用引擎,能夠發行流應用。建議對dcloud
的產品有個大體瞭解後再實踐這塊的內容。
因此我給新手的學習路線是hbuilder = > html5+ = > mui = > 多端發佈和流應用,當熟悉了這邊的產品鏈之後開發起來會快不少,像hbuilder
,html5+
開始能夠簡單看看,瞭解基本的東西就能夠。用mui
的話至少得有基本的前端基礎吧,再怎麼樣也得會基本的css
佈局和js
基礎吧,若是沒有這些基礎,先花點時間學一下基礎或許更好。不要相信那種什麼從零開始一週開發app
的廣告詞,沒有基礎,也很難說作一個體驗極好的app
。
若是有原生開發經驗的開發者必定會理解java
在android
中或者Objective-C
在ios
中的地位,作跨平臺app
開發,其實主要仍是在於js
功底,特別是原生js
水平,因此若是js
基礎通常的開發者仍是要不斷增強學習,這裏給的建議跟着hello mui
裏面的例子學,看官方人員是怎麼寫的,本身學着寫,而後也能夠在業餘時間去研究一下基礎。相信假以時日,你會發現你的js
水平也會不斷提升。
html5+
是DCloud
提供的html5
強化引擎,能夠把HTML5 App
打包爲原生App
,而且達到原生的功能和體驗。說白了就是本來只能原生APP
才能實現的功能,如今能夠經過html5+
這個強化引擎做爲橋樑,你經過調用plus.*
方法實現,也就是你能夠經過書寫js代碼實現android和ios兩套的原生功能。html5+
封裝了一些最經常使用的功能,並向W3C
提交了做爲標準的提案,具體的能夠參考html5+規範API。
html5+
做爲一種通用標準,只封裝了最經常使用的一些API
,若是你有其餘需求可是5+裏面沒有怎麼辦,這個時候若是你懂原生應用開發,你能夠基於native.js
語法規範進行個性化封裝。Native.js for Android
封裝一條經過JS
語法直接調用Native Java
接口通道,經過plus.android
可調用幾乎全部的系統API
。Native.js for iOS
封裝一條經過JS
語法直接調用Native Objective-C
接口通道,經過plus.ios
可調用幾乎全部的系統API
。
咱們常常看到html5+
(即html5plus
)、5+ sdk
,其實本質是同樣的,不過這裏的5+ sdk是針對離線打包開發和Hybrid
開發模式,由於用hbuilder
在線打包,html5+
和native.js
的底層會被自動打包到安裝包裏面,開發者無需引用什麼便可調用相關API。只要當開發者想要離線打包及Hybrid
開發模式或者深刻了解html5+
的引擎實現原理,才須要去了解一下5+ sdk
,通常狀況下咱們只須要知道5+標準裏面的基本用法就足夠咱們開發出一個APP
。
mui
是Dcloud
官方推出的一個基於html5+
標準的框架,同時擁有h
5組件和原生組件,原生組件依賴於html5+
運行環境,也就是原生app
裏面的webview
組件(能加載顯示網頁,能夠將其視爲一個瀏覽器),因此mui
裏面的原生組件不能用於瀏覽器環境,能夠經過mui
裏面的mui.os.plus
進行判斷,若是是plus
環境會返回true
,不然會返回undefined
。開發者能夠根據本身的須要進行代碼適配,對於APP
使用加強的原生組件,對於普通瀏覽器裏面運行的頁面使用h5
組件。同時用戶還可使用mui.os.android
、mui.os.ios
及mui.os.wechat
對平臺進行檢測,而後書寫不一樣的邏輯代碼。對於mui
裏面沒有封裝的原生組件,你們能夠根據本身的須要基於html5+
標準和native.js
語法進行個性化定製。所以這裏咱們能夠有一個基本影響就是咱們開始能夠直接上手mui
,不過須要明白mui
與其餘UI
框架的區別在於,mui
擁有獨有的原生組件,並且這個是依賴於html5+
標準的,因此mui
裏面的不少組件實現方法甚至用戶就是html5+
裏面的標準寫法,對html5+
標準有必定了解有助於咱們理解mui
的一些使用方法。
本文沒有給出任何實際代碼,只是根據不少朋友的一些疑惑談了談本身的見解,因此不必定很全面,你們能夠參考官方文檔去詳細瞭解細節。從今天開始我會寫一個mui的系列教程。在此承諾,每週至少會保證更新一篇文章。若是有朋友有與之相關的優秀學習資源能夠給我推薦,聯繫郵箱:zhaomenghuan@foxmail.com
。
文章原始地址是我博客地址:
MUI小白文檔地址:
寫文章不容易,也許寫這些代碼就幾分鐘的事,寫一篇你們好接受的文章或許須要幾天的醞釀,而後加上幾天的碼字,累並快樂着。若是文章對您有幫助請我喝杯咖啡吧!
近期在segmentfault講堂開設了一場關於html5+ App開發工程化實踐之路的講座,歡迎前來圍觀:https://segmentfault.com/l/15...。