jQuery Mobile - 特定のページを指しているときにのみ戻るボタンを削除する

私はログイン画面を備えたモバイルウェブアプリを持っています。ログイン後、ユーザーはアプリのホーム画面に移動します。アプリケーション全体で戻るボタンが有効になっているので、戻るボタンがホーム画面に表示されます。ただし、「戻る」を押すと、ユーザーはログインページ(私は欲しくない)に戻ります。同時に、ホーム画面には「戻る」ボタンが必要です。これは、ユーザーがアプリの他の画面からホームスクリーンに移動して戻ってくる可能性があるためです。

基本的には、ログイン画面に行く場合は戻るボタンを無効にする簡単な方法がありますが、それ以外の場合は戻っていませんか?

1
彼が既にログインしている場合、ユーザーを自宅/デフォルトページに自動的にリダイレクトする方が良い方法だと思います
追加された 著者 Andre,
私はすでにそれをやっています。しかし、もしユーザがリダイレクトされるなら、ログインに戻るというオプションをユーザに持たせないほうが良いでしょう。時間、要請などを節約する
追加された 著者 Jay,

3 答え

あなたが考慮に入れることができるもう一つの戦略は、ログインページが、バックが無効にされるべきであることを示すホームページのクエリ文字列にパラメータを追加することです。

http://myapp.com/page.html?backDisable=true

あなたのページの中で、単純なjavascript呼び出しは、パラメータが渡されたかどうかを判断し、そうであれば戻るボタンを無効にします。 URLパーサープラグインを使用したサンプルです。

if ($.url().param('backDisable') === 'true') {
  $('#backButton')[0].disabled = true;
}
0
追加された
jQuery Mobileには、 $。mobile.path.parseUrl のようなURLを解析するいくつかのメソッドもあります。 jquerymobile.com/demos/1.0rc2/docs/api/methods.html
追加された 著者 Jasper,

訪問したページの配列を設定し、最後のページがログインページであるかどうかをチェックする方法は?

//setup array of page views
var page_views = [];
//add event handler for `pageshow` event
$('[data-role="page"]').live('pageshow', function() {
    //add current page to page_views array
    page_views.push(this.id);
    var page_views_length = page_views.length;
    //check if the current page is the homescreen and if the last page was the login page
    if (this.id == 'homescreen_id' && page_views_length > 1 && page_views[(page_views_length - 2)] == 'login_id') {//this assumes your login page has the id of `login_id` and your homescreen page has the id of `homescreen_id`
        //run code to hide the back button
    }
});
0
追加された
これは、ページの履歴を持つ配列ではなく、最後のページのみを格納していることを除いて、これを行いました。前のページだけが重要です
追加された 著者 Jay,

あなたのログインインフォームにdata-ajax = "false"を追加してください。 私はあなたのログインフォームとホーム画面が同じドメインに存在すると仮定します。

だからexample.comに行くと、ログインフォームが表示されます(ログインしていない場合) ... example.comに行くと、ようこそ画面が表示されます...

私のインデックスレイアウトのPHPの例...(汚い):

<div data-role="page">
<?php if ($notloggedin) { ?>
    <form method="post" action="<?= $this->baseUrl('/'); ?>" id="login-form" data-ajax="false">...form...</form>
<?php } else { ?>
    YOUR PAGE
<?php } ?>
</div>

jqueryモバイルページのリンク

0
追加された
JavaScript - 日本のコミュニティ
JavaScript - 日本のコミュニティ
2 参加者の

日本人コミュニティのjavascript