半路出家的程序猿晋柱,稀里糊涂的學(xué)了weex,做了一段時間诵叁,也有了一些經(jīng)驗
weex的使用場景有限雁竞,在適合的場景下使用weex可以說是一個不錯的選擇。weex非常適合展示頁面黎休,交互不復(fù)雜的頁面浓领,開發(fā)效率賊高
畢竟剛轉(zhuǎn)行,只會寫weex,讓我感到十分的恐慌势腮,于是自己又試著學(xué)習(xí)swift(為啥沒學(xué)OC联贩?真的被語法嚇到了,看起來很詭異)捎拯,學(xué)著寫IOS原生代碼泪幌。
通過寫這篇文章,做一些總結(jié)和記錄署照,也為了方便日后查閱祸泪,復(fù)習(xí)
那就直接進(jìn)入正題吧,
## SWIFT項目中如何手動集成WEEX建芙?
參考資料:http://weex.apache.org/cn/guide/extend-module-using-swift.htmlweex官網(wǎng)没隘,使用swift擴(kuò)展IOS功能
?? ?https://github.com/acton393/WeexSwiftSample,官網(wǎng)給的例子
Xcode 10 + Weex 0.19.0
看完swift的語法,然后去看官網(wǎng)的文檔禁荸,心中一萬只草泥馬奔過右蒲,這尼瑪是啥也看不懂啊赶熟;但畢竟轉(zhuǎn)行做程序猿是自己的決定瑰妄,跪著也要走完;只能硬著頭皮上
下載github上官方例子映砖,打開podfile间坐,可以看到有如下信息;還有一個叫bundlejs的文件夾邑退,里頭放著weex項目編譯出來的JS文件竹宋;看起來似乎不難,那我們就放照官網(wǎng)例子地技,試著自己集成一下weex
這里就不贅述如何創(chuàng)建weex項目以及安裝cocoa pods了逝撬,如果有不懂的讀者,可以自己嘗試去整整看
1.首先使用xcode 創(chuàng)建single view app
創(chuàng)建成功后乓土,我們在終端進(jìn)入改項目目錄宪潮,執(zhí)行 pod init
然后將官網(wǎng)的podfile文件里的需要安裝的第三方拷貝到自己項目的podfile里
官方:podfile里的信息:
? ? pod 'WeexSDK', ‘0.16.0’ ? //核心SDK
????pod 'WXDevtool', ‘0.15.1’ //開發(fā)工具
????pod 'SDWebImage', ‘3.7.5’ //圖片處理
????pod 'SocketRocket', ‘0.4.2’?
復(fù)制到自己項目溯警,并且我把weexsdk的版本修改到 0.19.0
? ? ?pod 'WeexSDK', ‘0.16.0’ ? //核心SDK
? ? ? pod 'WXDevtool', ‘0.15.1’ //開發(fā)工具
? ? ? pod 'SDWebImage', ‘3.7.5’ //圖片處理
pod 'SocketRocket', ‘0.4.2’
然后終端執(zhí)行 ?pod install
2.創(chuàng)建橋街文件
? ? ?weexsdk是OC寫的,swift并不能直接使用狡相,所以我們需要創(chuàng)建一個橋街文件梯轻;然后通過swift來擴(kuò)展OC暴露出來的接口,這樣我們才可以愉快的使用
? ? 我們新建一個WXEventModule的swift文件,
? ? 接著我們繼續(xù)新建一個WXEventModule.m文件
這時尽棕,會彈出如下對話框喳挑,點擊創(chuàng)建橋街文件
最后我們再創(chuàng)建一個WXEventModule.h文件
3.嘗試跟著官方例子,將WXEventModule.swift,WXEventModule.h,WXEventModule.m以及viewcontroller文件代碼補充完整,還有一個圖片類下載協(xié)議
? ?把官方例子里的內(nèi)容直接copy過來不就完了滔悉?伊诵? ?好主意,拷過來回官,看看編譯能不能通過
? ? ?我去曹宴,兩年前的例子,竟然直接編譯通過了歉提,切斯太5烟埂!
4.補全Appdelegate里的代碼
? ? ? ? 還是直接拷貝吧苔巨,但是重新組織下代碼版扩,把配置weexsdk以及注冊module,component侄泽,handler這些代碼提出來礁芦,放到一個函數(shù)里
5.添加bundle文件夾
然后
6.將weex項目里編譯好的JS文件copy到項目下的bundlejs文件夾下,我就把新建weex測試項目下的dist文件夾下的index.js拷貝到bundlejs文件夾下(這個在weex項目里用指令也可以做到悼尾,暫時還沒研究柿扣,后面補上)
7.我們仔細(xì)查看官方例子中appdelegate中這段代碼
```
? ? 。诀豁。窄刘。窥妇。舷胜。。活翩。烹骨。。材泄。沮焕。
?? ?let viewController:ViewController = ViewController()
????????viewController.url = URL.init(string: String.init(format: "file://%@/bundlejs/index.js", Bundle.main.bundlePath))
????????window = UIWindow.init(frame: UIScreen.main.bounds)
????????window?.backgroundColor = UIColor.white
window?.rootViewController = UINavigationController.init(rootViewController: viewController)
? ?。拉宗。峦树。辣辫。。魁巩。急灭。。谷遂。
```
用一個viewcontroller加載JS文件葬馋,我們也按照他的格式創(chuàng)建了bundlejs文件,還特意拷貝了一個index.js文件
那就編譯運行一下試試肾扰,看看能不能跑起來畴嘶,cmd+r,
乖乖,竟然成功了集晚,搞起來也不是那么難嘛窗悯,當(dāng)然最簡單的就是下載官方例子,然后把名字改了甩恼,再根據(jù)自己需要架構(gòu)項目蟀瞧;
拿著官網(wǎng)的例子,copy再copy条摸,還是了解了一些swift如何集成weex悦污;
還算是有所收獲吧;