ホームページ  >  記事  >  ウェブフロントエンド  >  APPのHTML5実装でリスニングリターンイベントを処理する方法

APPのHTML5実装でリスニングリターンイベントを処理する方法

小云云
小云云オリジナル
2018-03-16 10:54:013730ブラウズ

この記事では、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>

ヘッダーの戻るロゴをクリックして前のページに戻ります。


//以下是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 という概念があります。窓。

当初、これら 2 つの概念を意図的に区別していなかったので、新しいウィンドウを開いて Web ページを開くこともあれば、location.href などの URL を直接

ジャンプすることもありました。

これにより、携帯電話の戻るボタンを監視すると、次のような状況になります。

1. ソフトウェアを開き、ホームページ (main.html=>HBuilder[webview]) に入ります。前者 URL のローカル アクセス パスを表します。これはウィンドウ Web ビューの ID です。

2. Web ビューを作成してログイン インターフェイスを開くのではなく、location.href を通じてログイン インターフェイスに移動します。

3. ログイン後、機能ページに入り、もう一度Returnを押してログインページに戻ります。ログイン後、携帯電話の戻るボタンをクリックすると、直接ログアウトされることが期待されます。この目的のために、私たちは MUI ロールバック関数について特別に学びました。監視する必要があるページでこのメソッドをオーバーライドすることでこれを実現できます:

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

ただし、Web ページの 2 つのモードを混在させる場合。ジャンプとフォームの作成 使用すると予期しない結果が発生します。つまり、mui.back はエントリ ファイル内でのみ監視できます。他のページまたはフォームで実行された監視はすべて、mui.back のリッスン イベントによってキャプチャされません。エントリ ファイルの監視ビジネス ロジックのみが実行されるため、リターン イベントをカスタマイズせずに前のページに戻るという厄介な状況が発生します。たとえば、ログイン ページに戻ってリターン イベントをカスタマイズすると、 find all イベントはすべてエントリ ファイルによって監視されます。これは、他のページに mui.back=function(){} を書いても意味がないことを意味します。

すべてのジャンプページをフォームとして開いた場合、上記の問題は発生しません。各ウィンドウは正常に mui.back カスタム関数をリッスンできます。

以上がAPPのHTML5実装でリスニングリターンイベントを処理する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。