Weex系列一、構建Weex的工程

Weex比React Native更簡單蓖乘,更容易學習锤悄,并且做到真正的跨平臺,一套代碼可以多個平臺運行驱敲。所以建議大家都用Weex吧铁蹈。我們主要講的是Weex在iOS項目中的應用。

一、安裝Node

已經安裝Node的握牧,請忽略過去容诬。

檢查Node是否安裝的命令:

$ node -v

v7.3.0

大家可以看阿里團隊的博文,我這里也說下沿腰。

1览徒、要先安裝Node。在Mac我是用Homebrew來安裝的颂龙。

安裝命令: brew install node

2习蓬、接著我們需要安裝Weex CLI。

終端中執(zhí)行: sudo npm install -g weex-toolkit??

3措嵌、npm 是 Node 的模塊管理器官研,執(zhí)行install因為連的是國外的服務器复局,事件可能會很慢。如果大家運行上面的語句很慢 可以按下面的來做,如果大家已經翻墻亥贸,就不用按下面的來了睛约。

3.1凰兑、刪除代理設置:

#npm config delete proxy

#npm config delete https-proxy

然后 終端執(zhí)行:

npm --registry https://registry.npm.taobao.org info underscore?

也可以用下面2種方法:

3.2脯倚、終端執(zhí)行:

npm config set registry https://registry.npm.taobao.org npm info underscore?

如果上面配置正確這個命令會有字符串response

3.3:編輯 ~/.npmrc 加入下面內容,將配置寫死笋婿,下次用的時候配置還在registry = https://registry.npm.taobao.org

4誉裆、如果安裝中遇到下面的警報,可以忽略缸濒,不用管足丢,也可以運行命令來修正。

4.1庇配、安裝的時候報警報:npm warn deprecated lodash@2.4.2: lodash@<3.0.0霎桅,

可以執(zhí)行下面2句命令行即可:

npm uninstall lodash

npm install lodash@latestnpm cache clean

4.2、如果報錯:npm ERR! tar.unpack untar error 讨永,可以執(zhí)行下面命令:sudo? npm cache clean


二、引入SDK

1遇革、我們新建一個項目:WeexDemo卿闹。

2、從github下載Weex項目后萝快,然后將ios/sdk 文件夾復制到根目錄锻霎,并新建一個Podfile文件,文件內容為:

source 'https://github.com/CocoaPods/Specs.git'

platform :ios, '7.0'

#inhibit_all_warnings!

def common

pod 'WeexSDK', :path=>'./sdk/'

end

target 'WeexDemo' do

common

end

3揪漩、命令行cd到根目錄旋恼,然后執(zhí)行pod install --verbose --no-repo-update

如圖:


三、寫代碼

我們用最簡單的方式來先把代碼寫出來奄容。

首先我們先做個簡單的Demo冰更。已經放到github上了产徊。大家可以下載看看,我們下面講的就是這個Demo的代碼蜀细。

1舟铜、新建一個項目,初始化SDK。

在AppDelegate文件里的didFinishLaunchingWithOptions方法里 初始化Weex的SDK奠衔。如圖:

初始化Weex的SDK

上圖中谆刨,我們先配置了一些信息,也可以不配置归斤。直接 初始化SDK:

[WXSDKEngine initSDKEnvironment];

其中 打印類型 我們設置的為WXLogLevelAll痊夭。 該枚舉的全部類型為:

WXLogLevel枚舉

初始化SDK后,需要調用registerModule方法 注冊我們自己寫的WXEventModule脏里。Module可以讓JS主動調用原生iOS代碼她我。

registerModule我們后面再講,我們可以先把registerModule這句 給注釋掉膝宁。先看VC如何加載js 來實現(xiàn)一個頁面的鸦难。

2、VC頁面設置员淫。

我們在ViewController頁面 先寫個原生的按鈕合蔽,然后 用指定的 URL 渲染 weex 的 view,把該view添加到VC的view上介返。

self.view上加上一個原生的UIButton拴事。用render方法來初始化JS的頁面。

我們在viewDidLoad里讀取了一個helloWeex.js的文件路徑圣蝎,下面我們會講 這個js是怎么創(chuàng)建生成的∪邢現(xiàn)在大家就當已經創(chuàng)建好了。

addTestBtn方法是用來創(chuàng)建原生UIButton的徘公。

3牲证、加載JS文件顯示頁面

我們先初始化WXSDKInstance,WXSDKInstance可以通過renderWithURL方法根據(jù)傳入的js來創(chuàng)建相關的UIView关面,它有一些回調方法:

onCreate:根視圖rootView創(chuàng)建的時候

onFailed:處理失敗后

renderFinish:視圖渲染完成

componentForRef:通過視圖索引拿到對應的組件視圖

我們在onCreate 的block中將WXSDKInstance生成好的UIView add到self.view上坦袍。

4、上面代碼運行的效果如下:

四等太、前端頁面

Sublime 可以設置weex高亮捂齐。大家可以點擊去看下。

我們來看下 上面說的js文件 是怎么創(chuàng)建生成的缩抡。

我們新建一個helloWeex.we的文件奠宜。如圖:

helloWeex.we

1、代碼分析

上文中的template模板中默認建了一個顯示文字為“Hello Weex” 的text。其中class="title"压真,也就是樣式為title娩嚼。onclick="onClickTitle":也就是 點擊該文本會調用onClickTitle的js方法。

然后下面設置了title的樣式:.title { color: red; } ?榴都。所以字體會顯示紅色待锈。

最下面設置了onClickTitle的js方法。所以當你點擊文本的時候 會在控制臺打印日志嘴高,但是alert方法在iOS中沒有執(zhí)行竿音,這個我們后面再說。?

2拴驮、瀏覽器運行效果

在終端 cd到改文件所在的目錄春瞬,然后執(zhí)行: weex helloWeex.we ? 。

會自動打開瀏覽器:http://127.0.0.1:8081/weex_tmp/h5_render/?hot-reload_controller&page=helloWeex.js&loader=xhr

點擊該文本套啤,會提示相關文字:

3宽气、生成js文件

然后再終端執(zhí)行:?

weex helloWeex.we -o helloWeex.js

會生成 js文件,我們把這個js文件拖到項目中潜沦。目錄如下:

WeexDemo項目文件


4萄涯、WeexPlayground掃描

如果你想不想引入到自己項目中,而是想直接在手機上看上面helloWeex.we的效果唆鸡±杂埃可以從AppStore下載WeexPlayground,然后 在終端中輸入: weex helloWeex.we --qr ?争占。

終端會生成一個二維碼(如下圖)燃逻,然后用WeexPlayground 這個APP掃描這個二維碼 即可。

github的地址為:https://github.com/bugaoshuni/WeexDemo.git

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末臂痕,一起剝皮案震驚了整個濱河市伯襟,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌握童,老刑警劉巖姆怪,帶你破解...
    沈念sama閱讀 211,376評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異澡绩,居然都是意外死亡片效,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,126評論 2 385
  • 文/潘曉璐 我一進店門英古,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人昙读,你說我怎么就攤上這事召调。” “怎么了?”我有些...
    開封第一講書人閱讀 156,966評論 0 347
  • 文/不壞的土叔 我叫張陵唠叛,是天一觀的道長只嚣。 經常有香客問我,道長艺沼,這世上最難降的妖魔是什么册舞? 我笑而不...
    開封第一講書人閱讀 56,432評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮障般,結果婚禮上调鲸,老公的妹妹穿的比我還像新娘。我一直安慰自己挽荡,他們只是感情好藐石,可當我...
    茶點故事閱讀 65,519評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著定拟,像睡著了一般于微。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上青自,一...
    開封第一講書人閱讀 49,792評論 1 290
  • 那天株依,我揣著相機與錄音,去河邊找鬼延窜。 笑死恋腕,一個胖子當著我的面吹牛,可吹牛的內容都是我干的需曾。 我是一名探鬼主播吗坚,決...
    沈念sama閱讀 38,933評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼呆万!你這毒婦竟也來了商源?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,701評論 0 266
  • 序言:老撾萬榮一對情侶失蹤谋减,失蹤者是張志新(化名)和其女友劉穎牡彻,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體出爹,經...
    沈念sama閱讀 44,143評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡庄吼,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,488評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了严就。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片总寻。...
    茶點故事閱讀 38,626評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖梢为,靈堂內的尸體忽然破棺而出渐行,到底是詐尸還是另有隱情轰坊,我是刑警寧澤,帶...
    沈念sama閱讀 34,292評論 4 329
  • 正文 年R本政府宣布祟印,位于F島的核電站肴沫,受9級特大地震影響,放射性物質發(fā)生泄漏蕴忆。R本人自食惡果不足惜颤芬,卻給世界環(huán)境...
    茶點故事閱讀 39,896評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望套鹅。 院中可真熱鬧站蝠,春花似錦、人聲如沸芋哭。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽减牺。三九已至豌习,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間拔疚,已是汗流浹背肥隆。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留稚失,地道東北人栋艳。 一個月前我還...
    沈念sama閱讀 46,324評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像句各,于是被迫代替她去往敵國和親吸占。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,494評論 2 348

推薦閱讀更多精彩內容

  • 這是weex剛開始內測那幾天寫的凿宾,寫完之后放在一邊就忘記了矾屯,今天突然看到就把它放到了網上,希望對大家有點兒用處...
    藍心兒的藍色之旅閱讀 31,512評論 14 16
  • 引子 這篇文章是筆者近期關于Weex在iOS端的一些研究和實踐心得初厚,和大家一起分享分享件蚕,也算是對學習成果的總結。文...
    一縷殤流化隱半邊冰霜閱讀 12,046評論 53 165
  • 前言 隨著移動端發(fā)展進入白熱化階段产禾,很多中小型公司越來越注重于APP的更新迭代速度排作。加上去年微信小程序的問世,前端...
    LeonLei閱讀 1,048評論 0 15
  • 前言 之前的幾個月里亚情,已經狠狠地體驗了一把React-Native妄痪,享受著React-Native帶來的快捷,也承...
    Daniel_顏世玉閱讀 946評論 5 8
  • 2007年11月29日楞件。北京拌夏。初雪僧著。 辭掉工作以后,我就完全沒有了時間概念障簿。每一天可以概括為,上午栅迄,下午站故,傍晚,晚...
    亦舟yj閱讀 451評論 0 0