js 调用 IOS 、Android原生方法

如今,由于有些页面排版或实现对于android、ios开发人员而言实在麻烦与复杂,实现需要的时间成本太高,导致很多App里都内置了Web网页,app中嵌入Web网页便免不了涉及到Android客户端、IOS客户端与Web网页交互。小编最近就遇到了这个问题,也找到了相应的解决方法,在此和大家分享一下,但小编只接触了js调用android客户端和ios客户端原生方法,故而只介绍js调用android客户端和ios客户端原生方法,不涉及android客户端和ios客户端调用js函数,请谅解。

一、js调用IOS端原生方法

①首先,ios先定义一个方法名,在此,方法名小编随便起个名为test方法,test方法接收一个参数。该参数类型需ios与前端开发人员说明清楚,否则ios可能会获取不到前端人员在js传的参数信息。至于ios端如何实现这个方法,小编就不在此贴代码了,毕竟小编只是一个小前端。

②其次,前端人员在js中调用该test函数,并将需要传的数据传给该函数

1、window.webkit.messageHandlers.test.postMessage(menu);
//menu是小编的数据还有一个方式
2、window.webkit.messageHandlers.test.postMessage({
	menu:menu
});
//该方式和ajax传参数数据是一样的道理
//至于使用哪一种方式,看ios需要的结构而定

注:此方法只使用于ios端的webview 为WKWebView组件渲染嵌入页面时

二、js调用Android端原生方法
①首先,android也需要先定义一个方法名,小编也起名为test函数,参数也与以上ios端相同,在此,小编也不贴android代码了。

②其次,前端人员也是在js中调用该test函数,并传参

android.test(menu);
//在此也是要注意android接收的参数类型

也许有童鞋要问小编代码中的android是从哪里来的,ok,在此小编就不得不贴一段android代码了,如下:

webView.addJavascriptInterface(this, "android");

android是Android端给webview绑定上的java对象,也不一定是android,这个需要和与你对接的android开发人员确定。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章