摘要:之前都是做的活動(dòng)頁面,沒有和原生對(duì)接,最近剛做了個(gè)混合開發(fā)的小項(xiàng)目,就原生和互相調(diào)用做一下總結(jié)原生調(diào)用方法,首先前端需要在頁面中定義一個(gè)全局的方法,這個(gè)方法要暴露在對(duì)象下面,比如我定義一個(gè)方法業(yè)務(wù)邏輯然后在載入頁面就可以拿到這個(gè)方法了調(diào)用安
之前都是做的H5活動(dòng)頁面,沒有和原生app對(duì)接,最近剛做了個(gè)混合開發(fā)的小項(xiàng)目,就原生APP和H5互相調(diào)用做一下總結(jié)
1:原生調(diào)用JS方法,首先前端需要在JS頁面中定義一個(gè)全局的方法,這個(gè)方法要暴露在window對(duì)象下面,比如我定義一個(gè)getUserInfo方法
window["getUserInfo"] = () => { //業(yè)務(wù)邏輯 };
然后app在載入H5頁面就可以拿到這個(gè)方法了
2:JS調(diào)用安卓的方法,安卓會(huì)暴露一個(gè)全局對(duì)象android,這個(gè)對(duì)象里定義了js需要調(diào)用的方法,比如getDevId,然后js里代碼這樣寫就可以調(diào)用到了
android.getDevId(param); //不過這個(gè)param不能是對(duì)象和null,不然安卓拿不到數(shù)據(jù)
3:JS調(diào)用iOS的方法,iOS使用的是wkwebview,然后js調(diào)用代碼如下
window.webkit.messageHandlers.getUserInfo.postMessage(param); //這個(gè)getUserInfo就是iOS端暴露出來的方法名 //如果不需要傳param,那就傳null,千萬不能不穿,不然收不到值 window.webkit.messageHandlers.getUserInfo.postMessage(null); //iOS調(diào)用js和上面安卓方法一樣
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/95738.html
摘要:一旦使用了那么就少不了和原生開發(fā)的一些交互如下的方案能夠幫助你解決。其實(shí)現(xiàn)原理是原生在的對(duì)象中注入一個(gè)方法,以備原生應(yīng)用進(jìn)行處罰觸發(fā),就和我們平時(shí)去調(diào)用的方法一樣簡單。代碼常用調(diào)用原生的方式都在這里體現(xiàn)。 showImg(https://segmentfault.com/img/remote/1460000016955237); 場景1 在原生app中經(jīng)常會(huì)使用到H5頁面,比如說電商中...
摘要:如果我們想要在一個(gè)頁面自動(dòng)播放背景音樂或是其他音頻,比如是沒辦法調(diào)用事件直接調(diào)用,非得添加手動(dòng)點(diǎn)擊事件才可以。接下來就說說我在項(xiàng)目里遇到的困難和解決辦法情況我們知道安卓是可以直接調(diào)用音頻的事件的,不行。 如果我們想要在一個(gè)頁面自動(dòng)播放背景音樂或是其他音頻,比如ios是沒辦法調(diào)用audio.play()事件直接調(diào)用,非得添加手動(dòng)點(diǎn)擊事件才可以。接下來就說說我在項(xiàng)目里遇到的困難和解決辦法....
閱讀 781·2023-04-25 16:55
閱讀 2821·2021-10-11 10:59
閱讀 2087·2021-09-09 11:38
閱讀 1800·2021-09-03 10:40
閱讀 1495·2019-08-30 15:52
閱讀 1134·2019-08-30 15:52
閱讀 965·2019-08-29 15:33
閱讀 3505·2019-08-29 11:26