Android如何與H5的混合開發(fā)實戰(zhàn)篇

現(xiàn)在的開發(fā)趨勢都是混合開發(fā),整個APP界面不只是用安卓原生代碼來搭建,還用到了網(wǎng)頁,絕大多數(shù)的電商類APP比如:淘寶,美團,京東等等。商品列表頁用安卓原生代碼寫的,詳情頁用網(wǎng)頁 ,安卓代碼就要跟網(wǎng)頁的JavaScript(H5)代碼進行交互。像這樣原生嵌套網(wǎng)頁,彼此間傳遞數(shù)據(jù)就是屬于混合開發(fā)。

安卓代碼如何與網(wǎng)頁的JavaScript代碼進行通信

為了更直觀,更生動的演示效果。先做點準備工作。

1.安裝Tmocat服務(wù)器

用于模擬網(wǎng)絡(luò)請求,獲取服務(wù)端數(shù)據(jù),以及部署網(wǎng)頁讓APP去加載該網(wǎng)頁

1.1登錄Apache Tomcat官網(wǎng),地址?http://tomcat.apache.org?,點擊左邊的Download,選擇需要下載的版本。

1.2 右鍵Finder—>前往文件夾—> ~/Library/ 目錄下,把下載完成的壓縮包解壓,命名為Tomcat,拷貝到這里。


1.3 打開終端,輸入cd /Users/jxxxxx/Library/Tomcat/bin,然后回車

(ps:jxxxxx是你mac電腦的用戶名。也可以直接輸入 cd,然后把Tomcat的bin目錄拖到終端即可)

1.4再輸入:./startup.sh?,回車


如果出現(xiàn)Permission denied就是操作失敗,缺少權(quán)限。再輸入?sudo chmod 755 *.sh,回車,接著輸入?./startup.sh,就可以啟動Tomcat了:

出現(xiàn)Tomcat started就說明服務(wù)器打開了。

(ps:sudo sh shutdown.sh?關(guān)閉服務(wù)器,然后再輸入sudo sh startup.sh?打開服務(wù)器,表示服務(wù)器重啟)

1.5打開我們的瀏覽器,然后網(wǎng)址輸入??http://localhost:8080/,如果出現(xiàn)一只貓,則證明配置成功~

(Tomcat部署在自己電腦上,所以可以用localhost代替具體的ip地址)

2.安裝Visual Studio Code(簡稱vscode)

很多開發(fā)工具都可以編寫html代碼,我習(xí)慣用的是Visual Studio Code,安裝很簡單就不演示了。官方下載地址:https://code.visualstudio.com/#alt-downloads?選擇自己的系統(tǒng)版本,安裝時一直下一步即可,安裝完成后直接運行code.exe,到此準備工作已完成。

3.打開vscode,新建index.html文件擼代碼。

3.1搭建h5界面以及效果圖:



3.2 JavaScript代碼部分,如下圖:


3.3 新建一個yanhuomatiou2015.json文件,并構(gòu)造一些數(shù)據(jù)。然后把yanhuomatiou2015.json和index,html文件拷貝到Tomcat里,重啟一下Tomcat,如下圖:


4.接下來就是android端代碼了(重點)

4.1搭建xml界面,下圖:


4.2 android與h5交互,必須要有個通信的橋梁類,新建個橋梁類,如下圖:


4.3在MainActivity類中初始化控件,配置webview參數(shù),如下圖:


代碼部分也已完成,先運行看效果:

效果圖分析:

1.當點擊藍色按鈕(js調(diào)用android方法)JavaScript的jsCallandroid方法會去調(diào)用android的showToast方法并傳參,然后在底部彈出的toast:


2.當點擊綠色按鈕( js調(diào)用android方法再callback(回調(diào))js方法),JavaScript的jsCallandroidCallBackJs方法會去調(diào)用android的getrequestData方法并傳參,在android的getrequestData方法里發(fā)起異步請求,拿到數(shù)據(jù):


接著回到主線程,再回調(diào)JavaScript的receiveAndroidData方法把獲取回來的數(shù)據(jù)傳為參數(shù)傳進去,彈出alter:


3.當點擊灰色按鈕(android調(diào)用js方法)android的onClick方法會去調(diào)用JavaScript的showMessage方法并傳參,彈出alter:


是不是so easy,完整的demo地址:https://github.com/yanhuomatou2015/AndroidHtml5.git? ?在完整的demo里,為了讓大家更好的理解android如何與h5交互的,我把前端頁面index.html的代碼,放到了app ->src->main->assets下,方便前端工程師參考。

今天的分享結(jié)束了,再見~

最后編輯于
?著作權(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ù)。
禁止轉(zhuǎn)載,如需轉(zhuǎn)載請通過簡信或評論聯(lián)系作者。

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

  • Java后端學(xué)習(xí)筆記 術(shù)語 三者的關(guān)系:JDK包含JRE,而JRE包含JVM; Java開發(fā)工具包(JDK):程序...
    ShuoyuanLiu閱讀 2,112評論 0 0
  • 久違的晴天,家長會。 家長大會開好到教室時,離放學(xué)已經(jīng)沒多少時間了。班主任說已經(jīng)安排了三個家長分享經(jīng)驗。 放學(xué)鈴聲...
    飄雪兒5閱讀 7,817評論 16 22
  • 今天感恩節(jié)哎,感謝一直在我身邊的親朋好友。感恩相遇!感恩不離不棄。 中午開了第一次的黨會,身份的轉(zhuǎn)變要...
    余生動聽閱讀 10,834評論 0 11
  • 可愛進取,孤獨成精。努力飛翔,天堂翱翔。戰(zhàn)爭美好,孤獨進取。膽大飛翔,成就輝煌。努力進取,遙望,和諧家園??蓯塾巫?..
    趙原野閱讀 3,481評論 1 1
  • 在妖界我有個名頭叫胡百曉,無論是何事,只要找到胡百曉即可有解決的辦法。因為是只狐貍大家以訛傳訛叫我“傾城百曉”,...
    貓九0110閱讀 3,711評論 7 3

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