在混合開發(fā)中,HTML界面經(jīng)常性的需要調(diào)用APP端提供的原生方法,而且在很多時(shí)候,APP端需要各種回調(diào),如果將所有的回調(diào)方法寫在內(nèi)部,不是很方便,而且有些時(shí)候,APP端需要定義一些主動(dòng)觸發(fā)HTML界面的方法,此時(shí)就會(huì)出現(xiàn)一個(gè)略坑的問題:
如果將該方法寫在vue methods內(nèi),當(dāng)APP主動(dòng)去觸發(fā)這些方法時(shí),就會(huì)發(fā)現(xiàn)無法獲取到這些方法,導(dǎo)致出錯(cuò)!
針對(duì)這個(gè)回調(diào)問題,在詢問了一些同事之后找到問題所在:在APP端主動(dòng)觸發(fā)HTML方法的時(shí)候,會(huì)到window下面去查找該方法,但是如果將方法設(shè)置到methods中,就會(huì)導(dǎo)致APP端找不到該方法,調(diào)用失敗,解決方法如下:
將方法定義到window下,代碼如下:
// 將方法綁定到window下面,提供給外部調(diào)用
mounted(){
window['rightFunctionName'] = () => {
this.getRule(); //回調(diào)方法需要執(zhí)行的代碼
/*代碼塊*/
}
},
采用這種定義方式即可解決APP端調(diào)用問題