h5与原生交互

JavaScript022

h5与原生交互,第1张

app混合开发,嵌入h5页面,应该是现在比较流行的一种开发方式。优点:开发速度快、app不用频繁提交审核、发版;缺点:h5的交互毕竟不如原生,开发时的沟通成本较大。

开发的过程中,会遇到一些h5或原生自身解决不了的交互,举例:在h5页面点击按钮弹出原生做的弹窗。

这个时候就需要通过h5调用原生的方法展示弹窗,反之一样。

其中 show 为ios定义的方法名, "显示弹窗" 是传过去的参数。

注意:参数不能为空!不然进去不方法。

也就是不可以postMessage()这样调用,没参数可以postMessage(null)

其中 supportJs 是android定义的js对象, show 为方法名, "显示弹窗" 是传过去的参数。

注意:定义的方法不接收参数的话,不能传参!不然进去不方法。

也就是不定义参数的话,show()这样调用

然后就可以在原生中调用方法名为Hybrid.show的js方法了,js接收一个参数,也可以根据实际业务定义多个参数。

JS调用Android原生方法,参数须是Java的内置类型:int、String等,若是JavaScript对象,需字符串化,否则Android无法正确接收;

JS调用Android原生方法,返回值是内置类型:int、String等,JS能够正确接收。若是Java自定义类型,则JS接收不到正确数据;

JS可以通过Android原生方法的返回值获取内置类型的参数,如String

若需要互传复杂类型的对象,双方须以String对媒介,以各自语言的Json工具类进行相互转化;