安卓、IOS内嵌H5的相互通信
一、h5触发安卓调用函数:
JavaScriptHandler.onActionResult(type)
1、JavascriptHandler是安卓定义的中间对象。
2、onActionResult为共同约定的方法名;type参数可传可不传(最好是传一下,IOS中不传的话不能触发);
二、h5接收安卓返回的参数
window.reTvInfo = function(res){ //监听到方法返回之后逻辑处理 }
1、直接在window上挂载一个全局方法,安卓端调用之后,会触发js中的这个方法,如本例中的reTvInfo方法。res接收安卓返回的值
三、h5触发IOS调用函数
window.webkit.messageHandlers.partnerOpenScan.postMessage("调用扫码");
1、messageHandlers为IOS定义的中间量
2、partnerOpenScan为安卓端要调用的方法名=》意思是告诉IOS调用该方法
3、postMessage为固定写法
4、IOS中必须要传入参数。不然不能触发IOS方法
四、h5接收IOS返回值
window.partnerReturnInfo = function(dt){ //监听到IOS返回之后的处理逻辑 }
五、总结
安卓IOS内嵌h5的通信都是通过window全局量来实现,接收返回都是将函数挂载到window上,然后app端主动调用。
触发方法会有所不同,特别要注意IOS必须带参才能触发