????????前段時間剛好用到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)載,為了分享之前遇到的問題,希望相互理解。