婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁(yè) > 知識(shí)庫(kù) > Html5 APP中監(jiān)聽(tīng)返回事件處理的方法示例

Html5 APP中監(jiān)聽(tīng)返回事件處理的方法示例

熱門標(biāo)簽:鎮(zhèn)江智能外呼系統(tǒng)有效果嗎 四川點(diǎn)撥外呼系統(tǒng) 成都智能外呼系統(tǒng)平臺(tái) 云南大理400電話申請(qǐng)官方 黃島區(qū)地圖標(biāo)注 當(dāng)涂高德地圖標(biāo)注 江蘇智能電銷機(jī)器人哪家好 南寧點(diǎn)撥外呼系統(tǒng)哪家公司做的好 電銷機(jī)器人電話用什么卡

在使用MUI框架的時(shí)候,我們經(jīng)常會(huì)用到一個(gè)頭部帶有.mui-action-back的class

<header class="mui-bar mui-bar-nav">
            <a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a>
            <h1 class="mui-title">貨物查詢</h1>
        </header>

點(diǎn)擊該頭部的返回標(biāo)識(shí),則會(huì)返回到上一個(gè)頁(yè)面,

//以下是mui.js中的源碼,可以看到,在點(diǎn)擊返回的時(shí)候,內(nèi)部做了以下的操作
//$.hook={}是專門用于記錄瀏覽的歷史的。
$.back = function() {
        if (typeof $.options.beforeback === 'function') {
            if ($.options.beforeback() === false) {
                return;
            }
        }
        $.doAction('backs');
    };

$.doAction = function(type, callback) {//返回上一個(gè)記錄
        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時(shí),我們用到的5+接口存在webview這一個(gè)概念,即是一個(gè)窗口。

而剛開(kāi)始我則沒(méi)有特意去區(qū)分這兩個(gè)概念,所以有時(shí)候新建窗口打開(kāi)網(wǎng)頁(yè),又或者有時(shí)候直接

通過(guò)網(wǎng)址來(lái)跳轉(zhuǎn)比如:location.href。

這樣就會(huì)導(dǎo)致,在監(jiān)聽(tīng)手機(jī)的back按鍵時(shí),出現(xiàn)了一種情況,其場(chǎng)景大致是下面這樣:

1、打開(kāi)軟件進(jìn)入主頁(yè)(main.html=>HBuilder[webview])【前者表示URL的本地訪問(wèn)路徑,后者是窗口webview的ID】。

2、通過(guò)location.href跳轉(zhuǎn)到登錄界面,而并非通過(guò)創(chuàng)建webview打開(kāi)。

3、登陸后進(jìn)入功能頁(yè)面,再按返回,又返回到了登錄頁(yè)面。預(yù)期是希望,我登錄完后,如果點(diǎn)擊手機(jī)的返回鍵,直接退出的。為此特意了解了MUI的回退函數(shù),我們可以通過(guò)復(fù)寫這個(gè)方法來(lái)實(shí)現(xiàn)

在需要監(jiān)聽(tīng)的頁(yè)面:

mui.back=function(){
//寫你監(jiān)聽(tīng)返回鍵后需要做的操作

但是,如果還是按照之前網(wǎng)頁(yè)跳轉(zhuǎn)和創(chuàng)建窗體兩種模式混合使用會(huì)出現(xiàn)意想不到的結(jié)果,也就是mui.back只能在入口文件被監(jiān)聽(tīng),在其他頁(yè)面或窗體做的監(jiān)聽(tīng)都不會(huì)被觸發(fā),全部被入口文件的監(jiān)聽(tīng)事件mui.back捕獲了,只會(huì)執(zhí)行入口文件的監(jiān)聽(tīng)業(yè)務(wù)邏輯,這樣就導(dǎo)致了,在不自定義返回事件的時(shí)候,我們沒(méi)法避免返回上一個(gè)頁(yè)面的尷尬情況:比如回退到了登錄頁(yè)面,而自定義返回事件,發(fā)現(xiàn)所有的事件都被入口文件監(jiān)聽(tīng)了。這意味著其他頁(yè)面寫mui.back=function(){}是沒(méi)有意義的。

而將所有的跳轉(zhuǎn)頁(yè)面都作為窗體打開(kāi),則不會(huì)出現(xiàn)以上問(wèn)題。每個(gè)窗口都能正常監(jiān)聽(tīng)mui.back自定義的function

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

標(biāo)簽:廣西 淮安 西寧 酒泉 咸寧 佳木斯 南京 十堰

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Html5 APP中監(jiān)聽(tīng)返回事件處理的方法示例》,本文關(guān)鍵詞  Html5,APP,中,監(jiān)聽(tīng),返回,事件,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Html5 APP中監(jiān)聽(tīng)返回事件處理的方法示例》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于Html5 APP中監(jiān)聽(tīng)返回事件處理的方法示例的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 祁门县| 马山县| 麻城市| 施甸县| 镇巴县| 象山县| 松江区| 左贡县| 勐海县| 平泉县| 茂名市| 广宁县| 疏勒县| 五常市| 云南省| 西华县| 子长县| 拜城县| 民和| 边坝县| 文成县| 青岛市| 日喀则市| 增城市| 饶平县| 靖宇县| 澄江县| 漠河县| 周至县| 金山区| 民乐县| 民勤县| 巴里| 建湖县| 辽阳市| 阿拉善右旗| 莒南县| 伊通| 琼海市| 措美县| 醴陵市|