iOS oc與js交互

? ? ? ? 現(xiàn)在越來(lái)越多的伴网,app 會(huì)采用混合開(kāi)發(fā)逃沿,開(kāi)發(fā)速度快還靈活多變透揣,當(dāng)年寫(xiě)的時(shí)候也是挺費(fèi)勁的济炎,領(lǐng)導(dǎo)扔過(guò)來(lái)個(gè)demo ,是采用reload html頁(yè)面 -(BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType 方法抓url 的方式來(lái)做的 辐真,話說(shuō)這種方式很久之前和同事搞過(guò)须尚,h5的同事弄死我的心都有了,所以我對(duì)領(lǐng)導(dǎo)大人說(shuō):“哇塞侍咱!真厲害耐床,人家會(huì)好好研究的”。領(lǐng)導(dǎo)說(shuō):“好好學(xué)習(xí)楔脯,小伙子有前途無(wú)量啊”撩轰。

? ? ?然而,那個(gè)同事和我關(guān)系還不錯(cuò)昧廷,為了他的生命堪嫂,我又找方法,終于發(fā)現(xiàn)JavaScriptCore 這個(gè)屌啊木柬。

? ? ?先說(shuō)用的最重的JSContext 皆串,JSContext是JavaScript的執(zhí)行環(huán)境。所有JavaScript執(zhí)行上下文內(nèi)進(jìn)行,所有JavaScript值與一個(gè)上下文弄诲。

? ? 首先要先獲取 webview 的 js 執(zhí)行環(huán)境?

? JSContext*context = [webV valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"];

然后注入和h5約定好的方法名 (此處最是痛心愚战,h5調(diào)用android是可以直接調(diào)用方法的,iOS調(diào)用方法是字符串齐遵,字符串寂玲,字符串)

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

NSArray*args = [JSContext currentArguments]; /// 獲取h5 傳參

if((NSNull*)args == [NSNull null]){

? ? ?return;

?}

(我們做的傳參全是JSON 格式)

NSString*strmethod = [NSStringstringWithFormat:@"%@",[args lastObject]];

NSString*strJson = [NSStringstringWithFormat:@"%@",strmethod];

//解析關(guān)鍵字執(zhí)行動(dòng)作

[self ToPerformActionCodeForJson:strJsonTarget:targetWebView:webV];

};

-(void)ToPerformActionCodeForJson:(NSString*)strJson Target:(id)target WebView:(UIWebView*)webV

{

NSData*JSONData = [strJsondataUsingEncoding:NSUTF8StringEncoding];

NSDictionary*dicmethod = [NSJSONSerialization JSONObjectWithData:JSONDataoptions:NSJSONReadingMutableLeaveserror:nil];

NSString*strAction = [NSString stringWithFormat:@"%@",[dicmethodobjectForKey:@"action"]];

/// 判斷action 后執(zhí)行動(dòng)作

if([strActionisEqualToString:@"goback"]) {

///[self goBack:strActionTarget:targetWebView:webVArgs:strArgs];

?}

}

再然后 iOS 調(diào)用 js?

JSContext*contex1t=[webVvalueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"];

NSString*alertJS = [NSStringstringWithFormat:@"%@",@"onVisible"] ;//準(zhǔn)備執(zhí)行的js代碼

[contex1tevaluateScript:alertJS];

沒(méi)了 。梗摇。拓哟。。伶授。 相當(dāng)簡(jiǎn)單

最后祝我萬(wàn)事如意断序,明天就有美女像我表白。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末糜烹,一起剝皮案震驚了整個(gè)濱河市违诗,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌疮蹦,老刑警劉巖诸迟,帶你破解...
    沈念sama閱讀 211,265評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡阵苇,警方通過(guò)查閱死者的電腦和手機(jī)壁公,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)绅项,“玉大人紊册,你說(shuō)我怎么就攤上這事】旃ⅲ” “怎么了囊陡?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,852評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)润努。 經(jīng)常有香客問(wèn)我关斜,道長(zhǎng),這世上最難降的妖魔是什么铺浇? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,408評(píng)論 1 283
  • 正文 為了忘掉前任痢畜,我火速辦了婚禮,結(jié)果婚禮上鳍侣,老公的妹妹穿的比我還像新娘丁稀。我一直安慰自己,他們只是感情好倚聚,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,445評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布线衫。 她就那樣靜靜地躺著,像睡著了一般惑折。 火紅的嫁衣襯著肌膚如雪授账。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,772評(píng)論 1 290
  • 那天惨驶,我揣著相機(jī)與錄音白热,去河邊找鬼。 笑死粗卜,一個(gè)胖子當(dāng)著我的面吹牛屋确,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播续扔,決...
    沈念sama閱讀 38,921評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼攻臀,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了纱昧?” 一聲冷哼從身側(cè)響起刨啸,我...
    開(kāi)封第一講書(shū)人閱讀 37,688評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎识脆,沒(méi)想到半個(gè)月后设联,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體加匈,經(jīng)...
    沈念sama閱讀 44,130評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,467評(píng)論 2 325
  • 正文 我和宋清朗相戀三年仑荐,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片纵东。...
    茶點(diǎn)故事閱讀 38,617評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡粘招,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出偎球,到底是詐尸還是另有隱情洒扎,我是刑警寧澤,帶...
    沈念sama閱讀 34,276評(píng)論 4 329
  • 正文 年R本政府宣布衰絮,位于F島的核電站袍冷,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏猫牡。R本人自食惡果不足惜胡诗,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,882評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望淌友。 院中可真熱鬧煌恢,春花似錦、人聲如沸震庭。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,740評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)器联。三九已至二汛,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間拨拓,已是汗流浹背肴颊。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,967評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留千元,地道東北人苫昌。 一個(gè)月前我還...
    沈念sama閱讀 46,315評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像幸海,于是被迫代替她去往敵國(guó)和親祟身。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,486評(píng)論 2 348

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