Android 與 H5 數(shù)據(jù)的傳遞

最近項目開發(fā)使用了 Android 原生和 H5 的混合開發(fā),以前也沒怎么接觸過。所以這次和 H5 聯(lián)調(diào)對接還是踩了很多坑,這里也做個總結(jié)希望可以幫助到大家...

首先 Android 和 H5 主要的坑是在彼此之間的數(shù)據(jù)交互;而如果只是彼此之間簡單的界面調(diào)用的話,還不是很難。網(wǎng)上搜索有很多的資料,這里也就不說了。

1,Android 調(diào)用 H5 的函數(shù),并且 Android 端傳遞相關(guān)參數(shù)到 H5;

H5 界面代碼如下:


企業(yè)微信截圖_16403340442854.png

功能函數(shù) getFromAndroid 中的參數(shù) userid 就是 Android 端傳遞過來的參數(shù)值,在 H5 代碼中就也可以直接使用了...
而 Android 端代碼如下:


企業(yè)微信截圖_16403341345571.png

企業(yè)微信截圖_1640334170636.png

其中 h5Str 就是 Android 端想傳遞給 H5 界面的數(shù)據(jù)。其中需要注意的是 a.拼接傳遞參數(shù)的時候需要注意添加雙引號和斜杠,否則可能會傳遞不過去;b.要注意頁面加載的生命周期,需要等到 H5 的界面加載完成后才開始傳遞參數(shù)。

2 H5 傳遞參數(shù)到 Android ;

這里主要坑的地方是并沒有直接的方式向上面那樣來從 H5 界面來傳遞參數(shù)到 Android 端,所以就只能首先調(diào)用 H5 方法,然后再在 所調(diào)用的 H5 方法中回調(diào)一個 Android 端方法,并且傳遞相關(guān)參數(shù)過來。

Android 端代碼如下:


企業(yè)微信截圖_16403343794629.png

企業(yè)微信截圖_1640334435677.png

上面 setUserId()為 H5 方法, JsInteration.back( String value) 為 H5 setUserId() 方法再次調(diào)用的 Android 端方法。其中 String value 就是 H5 傳遞過來的參數(shù);

H5 界面代碼如下:


企業(yè)微信截圖_16403344979886.png

其中 value 值就是需要傳遞過去的參數(shù)值

3.最后加上 Android 端攔截 H5 界面的點擊事件方法:
Android 端代碼如下:


企業(yè)微信截圖_16403345507778.png

H5 界面代碼如下:


企業(yè)微信截圖_16403345937546.png

其中重點主要是使用 shouldOverriderUrlLoading() 方法,使用參數(shù) url 來匹配。(這是和 H5 約定的 url;注意這里的 url 它的格式,如果只是常量字符串是匹配不到的)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容