HTML 5+與原生iOS交互傳參問題

????????前段時間剛好用到mui框架,發(fā)現(xiàn)該框架不是很成熟,想要通過Native.js實現(xiàn)交互,只有安卓可以直接用到,iOS端給出的建議是通過插件的方法來執(zhí)行。由于插件的方法本人也在摸索中,現(xiàn)在整理另一種交互方式:通過Notification監(jiān)聽。

? ? ? ? 這種方式,官網(wǎng)白皮書文檔給出了說明,本人之前就是一直卡在傳參,原生怎么給HTML中傳參?原生代碼獲取不到PDRCoreAppFrame,網(wǎng)上也能找到網(wǎng)友提供的獲取PDRCoreAppFrame,但是類似的方式我獲取到的對象是空的,那最后怎么成功的呢,流程如下:

? ?1、原生先進行監(jiān)聽:

2、監(jiān)聽完畢,原生直接遍歷當前視圖層級來獲取PDRCoreAppFrame進行回調(diào),此處需注意:如果不清楚你的PDRCoreAppFrame在哪個層級,xcode運行的時候記得查看下視圖層級,看視圖層級應該都知道吧,如果當前視圖找不到,就需要直接找UIWindow,到這一步原生直接調(diào)用-(void)fireEvent:(NSString*)eventargs:(id)args;方法就算完事了:

UIWindow *window = [[UIApplication sharedApplication] keyWindow];

? NSArray *views = [[[window rootViewController] view] subviews];


3、接下來是HTML這邊接收參數(shù),需要注意通知名稱一定要保持一致,然后傳遞的事件名稱要保持一致,HTML端才能發(fā)起并接收到通知:

4、講到這里順帶把安卓端通過njs獲取ssid的的方法一并截圖吧,看我截圖中,這塊有個坑哦,需要先開啟定位權(quán)限才能獲取到,一定要注意啦!??!

? ? 最后,總結(jié)下,以上iOS原生交互傳參都是取自實際項目,未經(jīng)允許禁止私自轉(zhuǎn)載,為了分享之前遇到的問題,希望相互理解。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴謹 對...
    cosWriter閱讀 11,639評論 1 32
  • 重點參考鏈接: View Programming Guide for iOS https://developer....
    Kevin_Junbaozi閱讀 4,701評論 0 15
  • 概要 64學時 3.5學分 章節(jié)安排 電子商務網(wǎng)站概況 HTML5+CSS3 JavaScript Node 電子...
    阿啊阿吖丁閱讀 9,813評論 0 3
  • 本文主要講解iOS觸摸事件的一系列機制,涉及的問題大致包括: 觸摸事件由觸屏生成后如何傳遞到當前應用? 應用接收觸...
    baihualinxin閱讀 1,275評論 0 9
  • 在iOS開發(fā)中經(jīng)常會涉及到觸摸事件。本想自己總結(jié)一下,但是遇到了這篇文章,感覺總結(jié)的已經(jīng)很到位,特此轉(zhuǎn)載。作者:L...
    WQ_UESTC閱讀 6,247評論 4 26

友情鏈接更多精彩內(nèi)容