OC和Web交互
2017-08-11 本文已影响9人
优优切克闹
项目需求是 点击网页的返回,返回到原生APP,所以要截获网页的返回事件。
原理是和网页端协议好一个URL(字符串),具体格式就随便定义啦
在手机上点击H5的返回按钮时web会把这个协商好的URL传给OC,OC有一个uiwebview的代理方法可以截获H5的所有JS事件,所以我们要写UIwebview的代理事件并遵循协议,在协议方法里过滤其他事件只取返回事件,然后在返回事件里实现返回原生APP的功能。
上代码:web那边就这么写
webiOS这边就这么写
设置代理 遵循代理 在代理方法中实现返回功能第二个需求是,导航栏是原生的,点击H5某一按钮跳转到H5的下级界面后,点击导航栏的返回,直接反到原生APP的上级界面而不是H5的上级界面,这肯定是不符合逻辑的。正确的应该是点击导航栏的返回,先返回H5的首界面,再次点击才返回原生APP的上级界面。解决方法如下:
完美!