HTML 5+与原生iOS交互传参问题

        前段时间刚好用到mui框架,发现该框架不是很成熟,想要通过Native.js实现交互,只有安卓可以直接用到,iOS端给出的建议是通过插件的方法来执行。由于插件的方法本人也在摸索中,现在整理另一种交互方式:通过Notification监听。

        这种方式,官网白皮书文档给出了说明,本人之前就是一直卡在传参,原生怎么给HTML中传参?原生代码获取不到PDRCoreAppFrame,网上也能找到网友提供的获取PDRCoreAppFrame,但是类似的方式我获取到的对象是空的,那最后怎么成功的呢,流程如下:

   1、原生先进行监听:

2、监听完毕,原生直接遍历当前视图层级来获取PDRCoreAppFrame进行回调,此处需注意:如果不清楚你的PDRCoreAppFrame在哪个层级,xcode运行的时候记得查看下视图层级,看视图层级应该都知道吧,如果当前视图找不到,就需要直接找UIWindow,到这一步原生直接调用-(void)fireEvent:(NSString*)eventargs:(id)args;方法就算完事了:

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

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


3、接下来是HTML这边接收参数,需要注意通知名称一定要保持一致,然后传递的事件名称要保持一致,HTML端才能发起并接收到通知:

4、讲到这里顺带把安卓端通过njs获取ssid的的方法一并截图吧,看我截图中,这块有个坑哦,需要先开启定位权限才能获取到,一定要注意啦!!!

    最后,总结下,以上iOS原生交互传参都是取自实际项目,未经允许禁止私自转载,为了分享之前遇到的问题,希望相互理解。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容