前端同事看了weex相關(guān)文檔,寫了一個項目,寫的時候用Android模擬器調(diào)試的,寫完之后,想看iOS端的效果,一頓操作,weexpack platform add ios,然后weexpack run iOS,最后并不能跑起項目.同事把一堆.js文件傳給我,讓我跑起來給他看看...
說下步驟吧,網(wǎng)上關(guān)于iOS那部分的weex教程有很多,但是weex一直在更新,版本都不一樣,建議直接去github: https://github.com/alibaba/weex/ 先下載個demo看看.
1.打開下載的demo. 用終端先cd到weex-dev/ios/playground,然后pod install.
2.打開,WeexDemo.xcworkspace,找到DemoDefine.h.其中 HOME_URL 是在debug環(huán)境下讀取的.js路徑, BUNDLE_URL是release環(huán)境下讀取的.js路徑.
3.把自己的.js文件夾拖入工程.記得選creat folder references,因為參照weex文檔寫的js,里面很多push操作都是找某個路徑下的js,如果不選第二個,可能會導致路徑找不到.
4.例如我把dist文件夾拖入工程,由于我的初始頁面需要是登錄頁面,所以修改文件路徑.
5.cmd+r,運行模擬器,如圖所示:
這樣讀取js文件操作基本ok了.
關(guān)于攔截操作:
1.比如點擊登錄按鈕,會觸發(fā)事件,我們找到login.js,查看里面的內(nèi)容找到登錄相關(guān)的事件,其中jumpUrl是點擊所執(zhí)行的方法,找到j(luò)umpUrl這個方法,
其實跟OC里面的 self.navigationController pushViewController:<#(nonnull UIViewController *)#> animated:<#(BOOL)#>是一個方法.只是把js代碼通過jsbridge調(diào)用原生的一些api.
2.既然是通過jsbridge去執(zhí)行點擊操作,我們查找項目里面有關(guān)jsbridge的文件,找到WXBridgeContext.m這個文件,
再找到- (void)executeJsMethod:(WXCallJSMethod *)method這個方法,
接著打一個斷點,再點擊登錄按鈕,po method,如下面所示,control=12,事件為:click,按鈕位置以及什么時候點擊的時間戳也po出來了.
3.在此方法里面就可以寫自己想要攔截的操作了,例如通過control=12,return出方法,把自己想要寫的操作寫進去就ok了.