native給weex頁(yè)面?zhèn)髦狄约癢eex調(diào)用native方法(iOS端)

今天凌晨微信小程序(應(yīng)用號(hào))對(duì)外發(fā)送內(nèi)側(cè)邀請(qǐng),瞬間在廣大前端和移動(dòng)端界炸開了鍋。恩捌省,H5或者說(shuō)JS的又一個(gè)春天來(lái)了。
原歸正傳碉钠,這里要說(shuō)的是在iOS端集成Weex時(shí)我們?nèi)绾谓oweex頁(yè)面?zhèn)髦蹈倩海约皐eex頁(yè)面如何調(diào)用iOS的native方法呢?且聽我慢慢道來(lái)喊废。
其實(shí)我這幾天一直在尋找native端往weex頁(yè)面?zhèn)髦档慕鉀Q方法祝高,只是資料太少,于是乎我去github提Issues:https://github.com/alibaba/weex/issues/1270
(汗污筷,鏈接居然404工闺,google搜“【PR】請(qǐng)教下iOS 端 native怎么傳值到j(luò)s”吧)
很快得到回復(fù)⊥切迹看了中文文檔之后斤寂,我大致知道應(yīng)該使用callback回調(diào):https://github.com/weexteam/article/issues/17
但是按照文檔來(lái)寫之后愣是沒(méi)成功耿焊,于是我又在qq群里提問(wèn)揪惦,老司機(jī)說(shuō)是作用域不一樣,要在外部先聲明var self = this,像這樣:

var self = this
eventModule.openURL('', function(ret){
    self.nativeLog(ret)
})

所以接下來(lái)就是我的代碼了
1:新建WXEventModule類:

#import <Foundation/Foundation.h>
#import <WeexSDK/WXEventModuleProtocol.h>
#import <WeexSDK/WXModuleProtocol.h>
#import <WeexSDK/WXNetworkProtocol.h>
#import <WeexSDK/WXUtility.h>
@interface WXEventModule : NSObject <WXEventModuleProtocol, WXModuleProtocol,WXNetworkProtocol>
- (void)testAction;
@end
#import "WXEventModule.h"
#import "WGWeexTestViewController.h"
#import "WGWeexDemoViewController.h"
#import <WeexSDK/WXBaseViewController.h>

@implementation WXEventModule

@synthesize weexInstance;

//這里記得添加這個(gè)宏罗侯,這樣weex才能識(shí)別native的方法
WX_EXPORT_METHOD(@selector(openURL:callback:))


- (void)openURL:(NSString *)url callback:(WXModuleCallback)callback
{
   callback(@{@"result":@"1"});
}

@end

2:然后在Appdelegate方法中通過(guò)調(diào)用 WXSDKEngine 中的 registerModule:withClass方法來(lái)注冊(cè)自己的module

[WXSDKEngine registerModule:@"event" withClass:[WXEventModule class]];

3:在weex中:
這里的 require 里面的event 就是在 上一步調(diào)用registerModule: 注冊(cè)module 時(shí)候的name(我就直接復(fù)制文檔上的原話了-)器腋。

methods: {
            
            updateHandler : function(e){
                //千萬(wàn)記得這句(先在外部聲明),不能在回調(diào)中直接使用this.function(),不然不執(zhí)行
                 var self = this;
                 var eventModule = require('@weex-module/event'); 

                   eventModule.openURL('test.js',function(ret) { 
                                      //回調(diào)執(zhí)行
                     self.loadVersionData(ret.result);
                                   

                   });
            },

恩,這樣就成功了钩杰,weex調(diào)用原生的方法纫塌,然后原生通過(guò)callback傳參數(shù)到weex頁(yè)面,這里要說(shuō)明下讲弄,callback(data)中這樣 data 支持的參數(shù)類型可以是 NSDictionary, NSString, NSArray, Int, Float, Bool 措左,具體可以看Issues:https://github.com/alibaba/weex/issues/866
由于weex剛開源不久,資料比較少避除,所以解決問(wèn)題的話還是直接去github上提Issues或者看別人的回答吧(使用百度的朋友請(qǐng)哭吧怎披,百度基本沒(méi)有任何線索,請(qǐng)google吧)瓶摆。
由于我是直接在公司項(xiàng)目中用的凉逛,本文的demo就不放github了,有什么問(wèn)題可以留言群井。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末状飞,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌诬辈,老刑警劉巖酵使,帶你破解...
    沈念sama閱讀 216,544評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異自晰,居然都是意外死亡凝化,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門酬荞,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)搓劫,“玉大人,你說(shuō)我怎么就攤上這事混巧∏瓜颍” “怎么了?”我有些...
    開封第一講書人閱讀 162,764評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵咧党,是天一觀的道長(zhǎng)秘蛔。 經(jīng)常有香客問(wèn)我,道長(zhǎng)傍衡,這世上最難降的妖魔是什么深员? 我笑而不...
    開封第一講書人閱讀 58,193評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮蛙埂,結(jié)果婚禮上倦畅,老公的妹妹穿的比我還像新娘。我一直安慰自己绣的,他們只是感情好叠赐,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,216評(píng)論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著屡江,像睡著了一般芭概。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上惩嘉,一...
    開封第一講書人閱讀 51,182評(píng)論 1 299
  • 那天罢洲,我揣著相機(jī)與錄音,去河邊找鬼文黎。 笑死惹苗,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的臊诊。 我是一名探鬼主播鸽粉,決...
    沈念sama閱讀 40,063評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼抓艳!你這毒婦竟也來(lái)了触机?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,917評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎儡首,沒(méi)想到半個(gè)月后片任,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,329評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蔬胯,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,543評(píng)論 2 332
  • 正文 我和宋清朗相戀三年对供,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片氛濒。...
    茶點(diǎn)故事閱讀 39,722評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡产场,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出舞竿,到底是詐尸還是另有隱情京景,我是刑警寧澤,帶...
    沈念sama閱讀 35,425評(píng)論 5 343
  • 正文 年R本政府宣布骗奖,位于F島的核電站确徙,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏执桌。R本人自食惡果不足惜鄙皇,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,019評(píng)論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望仰挣。 院中可真熱鬧伴逸,春花似錦、人聲如沸椎木。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,671評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)香椎。三九已至,卻和暖如春禽篱,著一層夾襖步出監(jiān)牢的瞬間畜伐,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,825評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工躺率, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留玛界,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,729評(píng)論 2 368
  • 正文 我出身青樓悼吱,卻偏偏與公主長(zhǎng)得像慎框,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子后添,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,614評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容