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開發人員確定。

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