這篇文章主要介紹Html5怎么實(shí)現(xiàn)APP中監(jiān)聽返回事件,文中介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們一定要看完!
成都創(chuàng)新互聯(lián)公司服務(wù)項(xiàng)目包括洮南網(wǎng)站建設(shè)、洮南網(wǎng)站制作、洮南網(wǎng)頁制作以及洮南網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,洮南網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到洮南省份的部分城市,未來相信會繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
<header class="mui-bar mui-bar-nav"> <a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a> <h2 class="mui-title">貨物查詢</h2> </header>
點(diǎn)擊該頭部的返回標(biāo)識,則會返回到上一個頁面,
//以下是mui.js中的源碼,可以看到,在點(diǎn)擊返回的時候,內(nèi)部做了以下的操作 //$.hook={}是專門用于記錄瀏覽的歷史的。 $.back = function() { if (typeof $.options.beforeback === 'function') { if ($.options.beforeback() === false) { return; } } $.doAction('backs'); }; $.doAction = function(type, callback) {//返回上一個記錄 if ($.isFunction(callback)) { //指定了callback $.each($.hooks[type], callback); } else { //未指定callback,直接執(zhí)行 $.each($.hooks[type], function(index, hook) { return !hook.handle(); }); } }; $.addAction = function(type, hook) {//添加歷史記錄 var hooks = $.hooks[type]; if (!hooks) { hooks = []; } hook.index = hook.index || 1000; hooks.push(hook); hooks.sort(function(a, b) { return a.index - b.index; }); $.hooks[type] = hooks; return $.hooks[type]; };
當(dāng)我們把H5封裝成APP時,我們用到的5+接口存在webview這一個概念,即是一個窗口。
而剛開始我則沒有特意去區(qū)分這兩個概念,所以有時候新建窗口打開網(wǎng)頁,又或者有時候直接
通過網(wǎng)址來跳轉(zhuǎn)比如:location.href。
這樣就會導(dǎo)致,在監(jiān)聽手機(jī)的back按鍵時,出現(xiàn)了一種情況,其場景大致是下面這樣:
1、打開軟件進(jìn)入主頁(main.html=>HBuilder[webview])【前者表示URL的本地訪問路徑,后者是窗口webview的ID】。
2、通過location.href跳轉(zhuǎn)到登錄界面,而并非通過創(chuàng)建webview打開。
3、登陸后進(jìn)入功能頁面,再按返回,又返回到了登錄頁面。預(yù)期是希望,我登錄完后,如果點(diǎn)擊手機(jī)的返回鍵,直接退出的。為此特意了解了MUI的回退函數(shù),我們可以通過復(fù)寫這個方法來實(shí)現(xiàn)
在需要監(jiān)聽的頁面:
mui.back=function(){ //寫你監(jiān)聽返回鍵后需要做的操作
但是,如果還是按照之前網(wǎng)頁跳轉(zhuǎn)和創(chuàng)建窗體兩種模式混合使用會出現(xiàn)意想不到的結(jié)果,也就是mui.back只能在入口文件被監(jiān)聽,在其他頁面或窗體做的監(jiān)聽都不會被觸發(fā),全部被入口文件的監(jiān)聽事件mui.back捕獲了,只會執(zhí)行入口文件的監(jiān)聽業(yè)務(wù)邏輯,這樣就導(dǎo)致了,在不自定義返回事件的時候,我們沒法避免返回上一個頁面的尷尬情況:比如回退到了登錄頁面,而自定義返回事件,發(fā)現(xiàn)所有的事件都被入口文件監(jiān)聽了。這意味著其他頁面寫mui.back=function(){}是沒有意義的。
而將所有的跳轉(zhuǎn)頁面都作為窗體打開,則不會出現(xiàn)以上問題。每個窗口都能正常監(jiān)聽mui.back自定義的function。
以上是Html5怎么實(shí)現(xiàn)APP中監(jiān)聽返回事件的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
標(biāo)題名稱:Html5怎么實(shí)現(xiàn)APP中監(jiān)聽返回事件
文章位置:http://aaarwkj.com/article48/gjcehp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機(jī)、響應(yīng)式網(wǎng)站、用戶體驗(yàn)、網(wǎng)站排名、網(wǎng)站策劃、手機(jī)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)