iOS開發(fā)OC與JS交互

一、JS調(diào)用OC原生

1本缠、引入庫以及頭文件

2窍育、為方便操作,加載本地html

NSURL *url = [[NSBundle mainBundle] URLForResource:@"test" withExtension:@"html"];

NSURLRequest *request = [NSURLRequest requestWithURL:url];

[self.webView loadRequest:request];

3肮疗、在test.html中添加一個(gè)按鈕

給test.html的按鈕添加一個(gè)打印的事件

function btnAction()

{

print('傳入?yún)?shù)1','傳入?yún)?shù)2');

}

4、在webViewDidFinishLoad方法中實(shí)現(xiàn)JS調(diào)用OC的方法

- (void)webViewDidFinishLoad:(UIWebView *)webView

{

//定義一個(gè)上下文對(duì)象? ? JSContext *context = [webView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"];

//定義好JS要調(diào)用的方法, print就是調(diào)用的print方法名

context[@"print"] = ^() {

//在上下文對(duì)象中,取出要調(diào)用的JS方法

NSArray *args = [JSContext currentArguments];

//在主線程對(duì)UI操作

dispatch_async(dispatch_get_main_queue(), ^{

UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"方式一"

message:@"這是JS調(diào)用OC原生的彈出窗" delegate:self

cancelButtonTitle:@"收到" otherButtonTitles:nil];

[alertView show];

});

for (JSValue *jsVal in args) {

NSLog(@"%@", jsVal.toString);? //打印結(jié)果是:JS傳入?yún)?shù)1? JS傳入?yún)?shù)2

}

}

二扒接、OC原生調(diào)用JS

1.在html中定義一個(gè)要被OC調(diào)用的JS方法

2.在webViewDidFinishLoad方法中實(shí)現(xiàn)OC調(diào)用JS的方法

[context evaluateScript:@"abc()"];

最后附上代碼的兩張圖(想要demo的私信我發(fā)給你)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末伪货,一起剝皮案震驚了整個(gè)濱河市们衙,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌碱呼,老刑警劉巖蒙挑,帶你破解...
    沈念sama閱讀 219,589評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異愚臀,居然都是意外死亡脆荷,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,615評(píng)論 3 396
  • 文/潘曉璐 我一進(jìn)店門懊悯,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蜓谋,“玉大人,你說我怎么就攤上這事炭分√一溃” “怎么了?”我有些...
    開封第一講書人閱讀 165,933評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵捧毛,是天一觀的道長观堂。 經(jīng)常有香客問我,道長呀忧,這世上最難降的妖魔是什么师痕? 我笑而不...
    開封第一講書人閱讀 58,976評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮而账,結(jié)果婚禮上胰坟,老公的妹妹穿的比我還像新娘。我一直安慰自己泞辐,他們只是感情好笔横,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,999評(píng)論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著咐吼,像睡著了一般吹缔。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上锯茄,一...
    開封第一講書人閱讀 51,775評(píng)論 1 307
  • 那天厢塘,我揣著相機(jī)與錄音,去河邊找鬼肌幽。 笑死晚碾,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的牍颈。 我是一名探鬼主播迄薄,決...
    沈念sama閱讀 40,474評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼煮岁!你這毒婦竟也來了讥蔽?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,359評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤画机,失蹤者是張志新(化名)和其女友劉穎冶伞,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體步氏,經(jīng)...
    沈念sama閱讀 45,854評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡响禽,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,007評(píng)論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了荚醒。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片芋类。...
    茶點(diǎn)故事閱讀 40,146評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖界阁,靈堂內(nèi)的尸體忽然破棺而出侯繁,到底是詐尸還是另有隱情,我是刑警寧澤泡躯,帶...
    沈念sama閱讀 35,826評(píng)論 5 346
  • 正文 年R本政府宣布贮竟,位于F島的核電站,受9級(jí)特大地震影響较剃,放射性物質(zhì)發(fā)生泄漏咕别。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,484評(píng)論 3 331
  • 文/蒙蒙 一写穴、第九天 我趴在偏房一處隱蔽的房頂上張望惰拱。 院中可真熱鬧,春花似錦啊送、人聲如沸弓颈。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,029評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽翔冀。三九已至,卻和暖如春披泪,著一層夾襖步出監(jiān)牢的瞬間纤子,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,153評(píng)論 1 272
  • 我被黑心中介騙來泰國打工款票, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留控硼,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,420評(píng)論 3 373
  • 正文 我出身青樓艾少,卻偏偏與公主長得像卡乾,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子缚够,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,107評(píng)論 2 356

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

  • 隨著H5技術(shù)的興起幔妨,在iOS開發(fā)過程中鹦赎,難免會(huì)遇到原生應(yīng)用需要和H5頁面交互的問題。其中會(huì)涉及方法調(diào)用及參數(shù)傳值等...
    Chris_js閱讀 3,077評(píng)論 1 8
  • OC與JS交互之JavaScriptCore 本文摘抄自:https://hjgitbook.gitbooks.i...
    大沖哥閱讀 1,023評(píng)論 0 1
  • JavaScriptCore框架主要是用來實(shí)現(xiàn)iOS與H5的交互误堡。由于現(xiàn)在混合編程越來越多古话,H5的相對(duì)講多,所以研...
    水靈芳蕥閱讀 1,409評(píng)論 1 8
  • 跟原生開發(fā)相比锁施,H5的開發(fā)相對(duì)來一個(gè)成熟的框架和團(tuán)隊(duì)來講在開發(fā)速度和開發(fā)效率上有著比原生很大的優(yōu)勢(shì)陪踩,至少不用等待審...
    大沖哥閱讀 1,846評(píng)論 0 7
  • 今早肩狂,我在同學(xué)群里轉(zhuǎn)發(fā)了一則微信,說的還是“垃圾人”的老話題姥饰,文中傻谁,作者建議大家“遠(yuǎn)離垃圾人”。 于是媳否,討論開始了...
    雞蛋西紅柿閱讀 2,040評(píng)論 0 0