>  기사  >  웹 프론트엔드  >  APP의 Html5 구현에서 청취 반환 이벤트를 처리하는 방법

APP의 Html5 구현에서 청취 반환 이벤트를 처리하는 방법

小云云
小云云원래의
2018-03-16 10:54:013688검색

이 글은 HTML5 APP에서 반환 이벤트 처리를 모니터링하는 방법 예제에 대한 관련 정보를 주로 소개합니다. MUI 프레임워크를 사용할 때 헤더에 .mui-action-back이 있는 클래스를 사용하는 경우가 많습니다.


<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>

헤더의 return 로고를 클릭하면 이전 페이지로 돌아갑니다.


//以下是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];
    };

H5를 APP으로 패키징할 때 사용하는 5+ 인터페이스는 webview라는 개념을 가지고 있습니다. 창문.

처음에는 이 두 개념을 고의로 구분하지 않았기 때문에 때로는 새 창을 열어 웹 페이지를 열 수도 있고, 때로는 location.href와 같은 URL을 직접

뛰어 넘기기도 했습니다.

휴대폰의 뒤로 버튼을 모니터링할 때 상황이 발생합니다. 대략적인 장면은 다음과 같습니다.

1. 소프트웨어를 열고 홈페이지(main.html=>HBuilder[webview])에 들어갑니다. 이전 윈도우 웹뷰의 ID인 URL의 로컬 접근 경로를 나타냅니다].

2. 웹뷰를 생성하여 여는 대신 location.href를 통해 로그인 인터페이스로 이동합니다.

3. 로그인 후 기능 페이지로 들어가 다시 Return 키를 눌러 로그인 페이지로 돌아갑니다. 로그인한 후 휴대폰에서 복귀 버튼을 클릭하면 바로 로그아웃될 것으로 예상됩니다. 이를 위해 특별히 MUI의 대체 기능에 대해 배웠습니다. 이 메서드를 재정의하면

모니터링해야 하는 페이지에서:


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

그러나 여전히 웹 페이지 점프의 두 가지 모드를 혼합한다면. 및 양식 생성을 사용하면 예상치 못한 결과가 발생합니다. 즉, mui.back은 항목 파일에서만 모니터링할 수 있으며, 그렇지 않으면 양식의 모니터링은 모두 mui.back의 수신 이벤트에 의해 캡처되지 않습니다. 항목 파일만 항목 파일의 모니터링 비즈니스 로직이 실행되므로 반환 이벤트를 사용자 정의하지 않고 이전 페이지로 돌아가는 당황스러운 상황이 발생합니다. 예를 들어 로그인 페이지로 돌아가고 반환 이벤트를 사용자 정의하면 찾을 수 있습니다. all 이벤트는 모두 항목 파일에 의해 모니터링됩니다. 즉, 다른 페이지에 mui.back=function(){}을 작성하는 것은 의미가 없습니다.

모든 점프 페이지를 폼으로 열면 위의 문제는 발생하지 않습니다. 각 창은 일반적으로 mui.back 사용자 정의 함수를 수신할 수 있습니다.

위 내용은 APP의 Html5 구현에서 청취 반환 이벤트를 처리하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.