JSBridge流程代碼理解

JSBridge理解:

兩個容器:

  • native端記錄一個messageHandlers韧涨,鍵值對為方法名和接口回調(diào)引矩,用于注冊方法惠况;
  • native端記錄一個responseCallbacks琐谤,鍵值對為發(fā)送id和接口回調(diào)进苍,用于發(fā)送方法贯城;

注冊發(fā)送流程:

  • 當發(fā)送時熊楼,通過loadUrl把指定方法按照指定格式發(fā)到h5,同時記錄id和接口回調(diào)能犯;
  • h5響應(yīng)后鲫骗,調(diào)用對應(yīng)方法;開始構(gòu)造返回結(jié)果消息踩晶,將消息放到隊列中执泰;
  • h5變更frame.src來觸發(fā)native的shouldOverrideUrlLoading,在這里記錄下fetchQueue方法名和對應(yīng)的接口回調(diào)渡蜻;
  • native再次loadUrl方法fetchQueue术吝,在h5中把消息隊列扁平化json,然后清空茸苇,把json再次通過frame.src來發(fā)送到native排苍;
  • 將扁平化的json轉(zhuǎn)化為消息列表,然后再根據(jù)響應(yīng)id來找對應(yīng)的方法学密;
  • 存在響應(yīng)id則是在發(fā)送方法容器中根據(jù)id找到接口回調(diào)淘衙,執(zhí)行后移除;
  • 不存在響應(yīng)id则果,則是在注冊消息容器中查找幔翰,找到后執(zhí)行接口方法,需要回應(yīng)的則再次走發(fā)送方法西壮。

為什么frame.src要變更兩次遗增,多走一次從js到native再到j(luò)s再到native才返回數(shù)據(jù),這中間涉及到的fetchQueue的目的是干什么的款青?

如果是一個方法就是一次回調(diào)做修,可能會通信頻率超級高;所以通過消息隊列的方式抡草,這么來回走一次的間隔饰及,然后把中間積累的消息統(tǒng)一發(fā)出去,這樣通過減少發(fā)生次數(shù)來降低通信頻率康震。

參考:

NATIVE JSBRIDGE源碼解析 深入理解JSBRIDGE

Android JsBridge 原理解析

android js交互_混合開發(fā)之JavaScriptInterfaceAndroid端交互


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末燎含,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子腿短,更是在濱河造成了極大的恐慌屏箍,老刑警劉巖绘梦,帶你破解...
    沈念sama閱讀 222,946評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異赴魁,居然都是意外死亡卸奉,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,336評論 3 399
  • 文/潘曉璐 我一進店門颖御,熙熙樓的掌柜王于貴愁眉苦臉地迎上來榄棵,“玉大人,你說我怎么就攤上這事潘拱≌铞” “怎么了?”我有些...
    開封第一講書人閱讀 169,716評論 0 364
  • 文/不壞的土叔 我叫張陵泽铛,是天一觀的道長尚辑。 經(jīng)常有香客問我,道長盔腔,這世上最難降的妖魔是什么杠茬? 我笑而不...
    開封第一講書人閱讀 60,222評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮弛随,結(jié)果婚禮上瓢喉,老公的妹妹穿的比我還像新娘。我一直安慰自己舀透,他們只是感情好栓票,可當我...
    茶點故事閱讀 69,223評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著愕够,像睡著了一般走贪。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上惑芭,一...
    開封第一講書人閱讀 52,807評論 1 314
  • 那天坠狡,我揣著相機與錄音,去河邊找鬼遂跟。 笑死逃沿,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的幻锁。 我是一名探鬼主播凯亮,決...
    沈念sama閱讀 41,235評論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼哄尔!你這毒婦竟也來了假消?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,189評論 0 277
  • 序言:老撾萬榮一對情侶失蹤岭接,失蹤者是張志新(化名)和其女友劉穎置谦,沒想到半個月后堂鲤,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,712評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡媒峡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,775評論 3 343
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了葵擎。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片谅阿。...
    茶點故事閱讀 40,926評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖酬滤,靈堂內(nèi)的尸體忽然破棺而出签餐,到底是詐尸還是另有隱情,我是刑警寧澤盯串,帶...
    沈念sama閱讀 36,580評論 5 351
  • 正文 年R本政府宣布氯檐,位于F島的核電站,受9級特大地震影響体捏,放射性物質(zhì)發(fā)生泄漏冠摄。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,259評論 3 336
  • 文/蒙蒙 一几缭、第九天 我趴在偏房一處隱蔽的房頂上張望河泳。 院中可真熱鬧,春花似錦年栓、人聲如沸拆挥。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,750評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽纸兔。三九已至,卻和暖如春否副,著一層夾襖步出監(jiān)牢的瞬間汉矿,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,867評論 1 274
  • 我被黑心中介騙來泰國打工副编, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留负甸,地道東北人。 一個月前我還...
    沈念sama閱讀 49,368評論 3 379
  • 正文 我出身青樓痹届,卻偏偏與公主長得像呻待,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子队腐,可洞房花燭夜當晚...
    茶點故事閱讀 45,930評論 2 361

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