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奠衔。如圖:
上圖中谆刨,我們先配置了一些信息,也可以不配置归斤。直接 初始化SDK:
[WXSDKEngine initSDKEnvironment];
其中 打印類型 我們設置的為WXLogLevelAll痊夭。 該枚舉的全部類型為:
初始化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的文件奠宜。如圖:
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文件拖到項目中潜沦。目錄如下:
4萄涯、WeexPlayground掃描
如果你想不想引入到自己項目中,而是想直接在手機上看上面helloWeex.we的效果唆鸡±杂埃可以從AppStore下載WeexPlayground,然后 在終端中輸入: weex helloWeex.we --qr ?争占。
終端會生成一個二維碼(如下圖)燃逻,然后用WeexPlayground 這個APP掃描這個二維碼 即可。
github的地址為:https://github.com/bugaoshuni/WeexDemo.git