撰寫(xiě)本文時(shí)英妓,Weex 還沒(méi)有完全開(kāi)源,這是官方的文檔中心,這是 Weex 團(tuán)隊(duì)放在 Github 上的一些文章霎肯,你可以上官網(wǎng)申請(qǐng)?jiān)L問(wèn) Weex 的 Github 頁(yè)面。
這篇文章介紹一下如何快速集成 Weex 到你的 iOS Project 里面榛斯。
如果你還沒(méi)有 Weex 的 SDK观游,你可以下載一下這個(gè)官方給的 WeexSample,工程里面有 WeexSDK.framework 這個(gè)文件驮俗,這樣如果你慣用 Objective-C 的話(huà)懂缕,參考這篇文章,你就可以清晰明了地知道這個(gè) Sample 是怎么寫(xiě)出來(lái)的王凑,但是這篇文章沒(méi)有告訴你這些事:
- 這里面有兩個(gè)文件 SRWebSocket.h 和 SRWebSocket.m搪柑,這是 facebook 的開(kāi)源項(xiàng)目 SockerRocket 聋丝,運(yùn)行這個(gè)項(xiàng)目必須有這個(gè)東西(至少暫時(shí)是這樣,或許以后 Weex 團(tuán)隊(duì)會(huì)嘗試自己搞個(gè)類(lèi)似的東西出來(lái)工碾?)
- 官方目前沒(méi)有 Swift 版本的 Sample弱睦,這里有個(gè)來(lái)自第三方的示例,可以參考一下渊额,這個(gè)示例有一點(diǎn)點(diǎn)問(wèn)題况木,代碼風(fēng)格不太 Swifty,問(wèn)題我寫(xiě)在下面了旬迹,其他諸如 print 寫(xiě)成 NSLog 這種火惊,無(wú)傷大雅,好歹是用 Swift 運(yùn)行起來(lái)了
- Weex 是用 OC 寫(xiě)的奔垦,Swift 項(xiàng)目集成它屹耐,里面需要橋接文件,如果你不知道這個(gè)是什么椿猎,可以參考我之前的一篇文章张症,這個(gè)文件里面只需要寫(xiě)這些(不需要 import SRWebSocket):
#import <WeexSDK/WXSDKEngine.h>
#import <WeexSDK/WXSDKInstance.h>
#import <WeexSDK/WXLog.h>
#import <WeexSDK/WXAppConfiguration.h>
- 官方展示的 OC 版本的這段代碼:
- (void)dealloc
{
[_instance destroyInstance];
}
在 Swift 里面的寫(xiě)法是:
// Deprecated
// override func finalize() {
// instance.destroyInstance()
// }
deinit {
instance.destroyInstance()
}
雖然官方在很多地方都提到這一點(diǎn),為了防止還是有人忽略鸵贬,再寫(xiě)一遍:請(qǐng)?jiān)?Build Settings 的 Other Link Flags 里面加入 -ObjC
-
官網(wǎng)開(kāi)源的代碼中俗他,沒(méi)有把 SDK 做成 .framework,而是直接一個(gè)文件夾阔逼,工程通過(guò) Pod 來(lái)把這個(gè) SDK 集成到項(xiàng)目中兆衅,順便也通過(guò) Pod 集成了其他內(nèi)容,這是 Podfile 里的內(nèi)容(可以看到 WeexSDK 是通過(guò)本地路徑加進(jìn)來(lái)的):
source 'https://github.com/CocoaPods/Specs.git' platform :ios, '7.0' #inhibit_all_warnings! target 'WeexDemo' do pod 'WeexSDK', :path=>'../sdk/' pod 'SDWebImage', '3.7.5' pod 'SocketRocket', '0.4.2' pod 'ATSDK-Weex', '0.0.1' end