JS調(diào)用Android、Ios原生控件
在上一篇博客(詳解JS與APP原生控件交互)中已經(jīng)和大家聊了,關于JS與Android、Ios原生控件之間相互通信的詳細代碼實現(xiàn),今天我們一起聊一下JS調(diào)用Android、Ios通信的相同點和不同點,以便幫助我們在進行混合式開發(fā)時,提高代碼質(zhì)量,實現(xiàn)兩者在網(wǎng)頁端代碼的統(tǒng)一。
首先我們先看一下Ios調(diào)用JS的方法實現(xiàn):
//無參調(diào)用
function SwiftCallJs1(){}
//有參調(diào)用
function SwiftCallJs2(name, message){}
緊接著我們看一下Android調(diào)用JS的方法實現(xiàn):
//無參調(diào)用
function AndroidCallJs1(){}
//有參調(diào)用
function AndroidCallJs2(data){}
從上面的代碼中你是否發(fā)現(xiàn),Android與Ios調(diào)用JS時,JS處理函數(shù)兩者在無參調(diào)用時是相通的。有參調(diào)用不同點是Ios是一對一直接傳遞,Android則是字符串傳遞,當然我們可以通過在Android和Ios端統(tǒng)一傳參使用JSON格式,JS支持JSON解析,從而實現(xiàn)兩個平臺在有參方法調(diào)用上的統(tǒng)一。
看完上面的Ios與Android調(diào)用JS,下面我們看一下JS調(diào)用Android與Ios原生通信的異同點。
首先我們看一下JS調(diào)用Android的方法實現(xiàn):
//無參調(diào)用
function callNull(){
android.CallNull();
}
//有參調(diào)用
function callMessage(){
android.CallMessage("msg");
}
//有參調(diào)用--json
function callJson(){
var json = "[{\"name\":\"滿藝網(wǎng)\",\"url\":\"www.manyiaby.com\"}]";
android.CallJson(json);
}
接下來我們看一下JS調(diào)用Ios的方法實現(xiàn):
//一:無前綴調(diào)用
//無參調(diào)用
function test1(){
Test1();
}
//有參調(diào)用
function test2(){
Test2("滿藝網(wǎng)","www.manyiaby.com");
}
//二:有前綴調(diào)用
//無參調(diào)用--帶返回操作結(jié)果處理
function callSystem(){
Ios.CallSystem();
}
//操作結(jié)果處理函數(shù)
function JSCallNullIosResult(){}
//有參調(diào)用
function callWithMsg(){
Ios.CallWithMsg("滿藝網(wǎng)","www.manyiaby.com");
}
//有參調(diào)用--json
function callWithJson(){
var json = "{\"name\":\"滿藝網(wǎng)\",\"url\":\"www.manyiaby.com\"}";
Ios.CallWithJson(json);
}
//有參調(diào)用--帶返回結(jié)果處理
function callWithJsonResult(){
var json = "{\"name\":\"滿藝網(wǎng)\",\"url\":\"www.manyiaby.com\"}";
Ios.CallWithJsonResult(json);
}
function JSCallJsonIosResult(data){
alert("name:"+data["name"]);
}
看到這里你一定發(fā)現(xiàn)了不同點,1、Android沒有不帶前綴的方法調(diào)用,2、Android沒有方法調(diào)用后的操作結(jié)果返回處理邏輯。對于第一點,就目前我所認識到的是原生沒有通過具體的實現(xiàn)邏輯,不過這個點不影響我們的開發(fā),因為Ios是支持前綴方法調(diào)用的。對于第二點,我的理解是對于返回處理函數(shù),我們可以在開發(fā)的添加上去,從而提高Ios用戶的使用體驗,并且處理函數(shù)不會影響到方法的調(diào)用。
好了到這里就和大家聊完了,當然如果所述與您的理解有偏差,還望指點一二。
以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持腳本之家!
- 三步搞定:Vue.js調(diào)用Android原生操作
- DCloud的native.js調(diào)用系統(tǒng)分享實例Android版代碼
- Android中實現(xiàn)WebView和JavaScript的互相調(diào)用詳解
- Android WebView的使用方法及與JS 相互調(diào)用
- Android編程使用WebView實現(xiàn)與Javascript交互的方法【相互調(diào)用參數(shù)、傳值】
- Android總結(jié)之WebView與Javascript交互(互相調(diào)用)
- Android與JS之間跨平臺異步調(diào)用實例詳解
- Android webview和js互相調(diào)用實現(xiàn)方法
- Android WebView使用方法詳解 附js交互調(diào)用方法
- Android與JS相互調(diào)用的方法
相關文章
JavaScript和TypeScript中的void的具體使用
這篇文章主要介紹了JavaScript和TypeScript中的void的具體使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-09-09
JS插件plupload.js實現(xiàn)多圖上傳并顯示進度條
這篇文章主要為大家詳細介紹了PHP結(jié)合plupload.js JS插件實現(xiàn)多圖上傳并顯示進度條加刪除實例,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-11-11

