91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

H5中APP監聽返回事件處理的示例分析

發布時間:2021-09-13 15:40:07 來源:億速云 閱讀:329 作者:小新 欄目:web開發

這篇文章將為大家詳細講解有關H5中APP監聽返回事件處理的示例分析,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

在使用MUI框架的時候,我們經常會用到一個頭部帶有.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>
            <h2 class="mui-title">貨物查詢</h2>
        </header>

點擊該頭部的返回標識,則會返回到上一個頁面,

//以下是mui.js中的源碼,可以看到,在點擊返回的時候,內部做了以下的操作
//$.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,直接執行
            $.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];
    };

當我們把H5封裝成APP時,我們用到的5+接口存在webview這一個概念,即是一個窗口。

而剛開始我則沒有特意去區分這兩個概念,所以有時候新建窗口打開網頁,又或者有時候直接

通過網址來跳轉比如:location.href。

這樣就會導致,在監聽手機的back按鍵時,出現了一種情況,其場景大致是下面這樣:

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

2、通過location.href跳轉到登錄界面,而并非通過創建webview打開。

3、登陸后進入功能頁面,再按返回,又返回到了登錄頁面。預期是希望,我登錄完后,如果點擊手機的返回鍵,直接退出的。為此特意了解了MUI的回退函數,我們可以通過復寫這個方法來實現

在需要監聽的頁面:

mui.back=function(){
//寫你監聽返回鍵后需要做的操作

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

而將所有的跳轉頁面都作為窗體打開,則不會出現以上問題。每個窗口都能正常監聽mui.back自定義的function

關于“H5中APP監聽返回事件處理的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

卓资县| 安阳市| 澎湖县| 政和县| 宁阳县| 双辽市| 雷山县| 淅川县| 莎车县| 汉寿县| 刚察县| 十堰市| 南华县| 西乌珠穆沁旗| 青冈县| 惠州市| 游戏| 锡林郭勒盟| 萨迦县| 中西区| 连山| 梅河口市| 潢川县| 文昌市| 武城县| 潍坊市| 兴国县| 昌图县| 吕梁市| 尖扎县| 津市市| 屏南县| 临汾市| 台中市| 永川市| 遂平县| 无极县| 东明县| 呼图壁县| 简阳市| 壶关县|