iOS 本地OC與JS互相調(diào)用并傳值

OC與JS間相互調(diào)用有兩種方式#####

第一種:使用JavaScriptCore,iOS7之后系統(tǒng)的原生方法系草,能夠?qū)崿F(xiàn)一些比較復雜的參數(shù)互傳及參數(shù)返回。使用也比較簡單,有以下幾篇文章有比較詳細的介紹栖榨。基本看完就能夠熟練的使用了明刷。
iOS js oc相互調(diào)用(JavaScriptCore)
Objective-C與JavaScript交互的那些事
關(guān)于iOS7里的JavaScriptCore framework


第二種就是使用攔截跳轉(zhuǎn)的方式婴栽。根據(jù)以下webview的代理函數(shù)可以攔截到跳轉(zhuǎn)鏈接,然后根據(jù)鏈接來解析使用一些本地的方法辈末。返回NO不跳轉(zhuǎn)即可愚争。但是一些互相之間的傳參就比較麻煩了。github上一個項目WebViewJavascriptBridge可以根據(jù)攔截跳轉(zhuǎn)來實現(xiàn)OC與JS之間的互相傳參挤聘。
- (BOOL)webView:(UIWebView)webView shouldStartLoadWithRequest:(NSURLRequest)request navigationType:(UIWebViewNavigationType)navigationType;


第三種就是使用WKWebview轰枝,這個是iOS8之后才能用的,它也有原生的方法能夠?qū)崿F(xiàn)JS和OC的交互檬洞。下面這幾篇文章有介紹如何使用狸膏。
使用WKWebView替換UIWebView:
(iOS7下用UIWebView,iOS8后用WKWebView)
Using JavaScript with WKWebView in iOS 8
UIWebView和WKWebView的使用及js交互
WKWebView與Js實戰(zhàn)(OC版)
自己動手打造基于 WKWebView 的混合開發(fā)框架(二)——js 向 Native 一句話傳值并反射出 Swift 對象執(zhí)行指定函數(shù)


個人比較推薦第一種添怔,第一種比較方便湾戳,而且適用于比較復雜的情況。我用第一種和第三種方式寫了一個例子來實現(xiàn)互相之間的調(diào)用傳參广料,有興趣的可以看看:DSOCConnectWithJS砾脑。

還有如果要在iOS7下使用UIWebView,iOS8后使用WKWebView艾杏,同時實現(xiàn)統(tǒng)一的JS和OC之間的交互韧衣。一種就是使用跳轉(zhuǎn)攔截的方式,一種就是給h5傳系統(tǒng)版本號购桑,讓h5在iOS7的時候使用第一種的JS調(diào)用方式:xxxx.callbackHandler(''參數(shù)')畅铭。在iOS8之后使用第三種JS調(diào)用方式:

 webkit.messageHandlers.callbackHandler.postMessage({"av":"jd"});

如果想讓使用者使用同一個api調(diào)用勃蜘,就自己再寫一個js層轉(zhuǎn)接硕噩。


最后這里還有一個safari調(diào)試技巧,能夠在電腦safari中直接調(diào)試真機或模擬器的webview頁面的樣式缭贡。還能夠直接在safari的控制臺里直接輸入js方法進行調(diào)試炉擅。具體怎么使用看這篇文章使用safari對webview進行調(diào)試辉懒。我這里由于是工程里的css,js文件谍失,所以它監(jiān)測不到眶俩,加載url的時候應該都沒問題的。

調(diào)試
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末快鱼,一起剝皮案震驚了整個濱河市颠印,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌攒巍,老刑警劉巖嗽仪,帶你破解...
    沈念sama閱讀 211,123評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異柒莉,居然都是意外死亡闻坚,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評論 2 384
  • 文/潘曉璐 我一進店門兢孝,熙熙樓的掌柜王于貴愁眉苦臉地迎上來窿凤,“玉大人,你說我怎么就攤上這事跨蟹■ㄊ猓” “怎么了?”我有些...
    開封第一講書人閱讀 156,723評論 0 345
  • 文/不壞的土叔 我叫張陵窗轩,是天一觀的道長夯秃。 經(jīng)常有香客問我,道長痢艺,這世上最難降的妖魔是什么仓洼? 我笑而不...
    開封第一講書人閱讀 56,357評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮堤舒,結(jié)果婚禮上色建,老公的妹妹穿的比我還像新娘。我一直安慰自己舌缤,他們只是感情好箕戳,可當我...
    茶點故事閱讀 65,412評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著国撵,像睡著了一般陵吸。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上介牙,一...
    開封第一講書人閱讀 49,760評論 1 289
  • 那天走越,我揣著相機與錄音,去河邊找鬼耻瑟。 笑死旨指,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的喳整。 我是一名探鬼主播谆构,決...
    沈念sama閱讀 38,904評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼框都!你這毒婦竟也來了搬素?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,672評論 0 266
  • 序言:老撾萬榮一對情侶失蹤魏保,失蹤者是張志新(化名)和其女友劉穎熬尺,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體谓罗,經(jīng)...
    沈念sama閱讀 44,118評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡粱哼,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,456評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了檩咱。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片揭措。...
    茶點故事閱讀 38,599評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖刻蚯,靈堂內(nèi)的尸體忽然破棺而出绊含,到底是詐尸還是另有隱情,我是刑警寧澤炊汹,帶...
    沈念sama閱讀 34,264評論 4 328
  • 正文 年R本政府宣布躬充,位于F島的核電站,受9級特大地震影響讨便,放射性物質(zhì)發(fā)生泄漏充甚。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,857評論 3 312
  • 文/蒙蒙 一器钟、第九天 我趴在偏房一處隱蔽的房頂上張望津坑。 院中可真熱鬧,春花似錦傲霸、人聲如沸疆瑰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽穆役。三九已至,卻和暖如春梳凛,著一層夾襖步出監(jiān)牢的瞬間耿币,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評論 1 264
  • 我被黑心中介騙來泰國打工韧拒, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留淹接,地道東北人十性。 一個月前我還...
    沈念sama閱讀 46,286評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像塑悼,于是被迫代替她去往敵國和親劲适。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,465評論 2 348

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