Home > Web Front-end > H5 Tutorial > How to handle the listening return event in Html5 implementation in APP

How to handle the listening return event in Html5 implementation in APP

小云云
Release: 2018-03-16 10:54:01
Original
3754 people have browsed it

This article mainly introduces relevant information to you about the method examples of monitoring return event processing in Html5 APP. I hope it can help you. When using the MUI framework, we often use a class with .mui-action-back in the header.


<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>
Copy after login

Click on the return logo of the header to return to the previous page.


//以下是mui.js中的源码,可以看到,在点击返回的时候,内部做了以下的操作
//$.hook={}是专门用于记录浏览的历史的。
$.back = function() {
        if (typeof $.options.beforeback === &#39;function&#39;) {
            if ($.options.beforeback() === false) {
                return;
            }
        }
        $.doAction(&#39;backs&#39;);
    };

$.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];
    };
Copy after login

When we When encapsulating H5 into an APP, the 5+ interface we use has the concept of webview, which is a window.

At the beginning, I didn't deliberately distinguish between these two concepts, so sometimes I created a new window to open a web page, or sometimes I directly

jumped through the URL, such as: location.href.

This will lead to a situation when monitoring the back button of the mobile phone. The scenario is roughly as follows:

1. Open the software and enter the homepage (main.html=> ;HBuilder[webview]) [The former represents the local access path of the URL, and the latter is the ID of the window webview].

2. Jump to the login interface through location.href instead of opening it by creating a webview.

3. After logging in, enter the function page, press Return again, and return to the login page. The expectation is that after I log in, if I click the return button on my phone, I will log out directly. For this purpose, we specially learned about the MUI rollback function. We can implement it by overriding this method.

On the page that needs to be monitored:


mui.back=function(){
//写你监听返回键后需要做的操作
Copy after login

However, if Still following the previous two modes of web page jump and form creation, unexpected results will occur, that is, mui.back can only be monitored in the entry file, and monitoring done on other pages or forms will not be triggered. All are captured by the listening event mui.back of the entry file, and only the listening business logic of the entry file will be executed. This leads to the embarrassing situation of returning to the previous page without customizing the return event: for example After returning to the login page and customizing the return event, I found that all events were monitored by the entry file. This means that it makes no sense to write mui.back=function(){} on other pages.

If all jump pages are opened as forms, the above problems will not occur. Each window can normally listen to the mui.back custom function.

The above is the detailed content of How to handle the listening return event in Html5 implementation in APP. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template