jQuery Mobile - sadece belirli bir sayfaya işaret ederken geri düğmesini kaldır

Giriş ekranı olan bir mobil web uygulamasına sahibim. Giriş yaptıktan sonra, kullanıcı uygulamanın ana ekranına gider. Tüm uygulama için arka düğmeleri etkinleştirdiğim için, arka ekran ana ekranda görünür; bununla birlikte, "Geri" ye basmak, kullanıcıyı giriş sayfasına geri götürecektir (ki istemiyorum). Aynı zamanda, ana ekranın "Geri" düğmesine sahip olması gerekir çünkü kullanıcı ana ekrana uygulamadaki diğer ekranlardan ulaşabilir ve geri dönmek isteyebilir.

Temel olarak, giriş ekranına giderse geri düğmesini devre dışı bırakmak için herhangi bir kolay yol var, ama başka bir yere giderse değil mi?

1
Giriş yapmışsa, kullanıcıyı otomatik olarak ana sayfa/varsayılan sayfaya yönlendirmek daha iyi bir yaklaşımdır.
katma yazar Andre, kaynak
Bunu zaten yapıyorum. Ancak, kullanıcı yine de yeniden yönlendirilecekse, girişe geri dönme seçeneğine sahip olmamasına izin vermemek daha iyidir. Zamandan, isteklerden vb.
katma yazar Jay, kaynak

3 cevap

Göz önünde bulundurmanız gereken başka bir strateji, giriş sayfasının ana sayfanın sorgu dizisine, geri alınmasının devre dışı bırakılması gerektiğini belirten bir parametre eklemesidir.

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

Sayfanızda, basit bir JavaScript çağrısı parametrenin geçip geçmediğini belirleyebilir ve eğer öyleyse geri düğmesini devre dışı bırakabilir. İşte, URL ayrıştırıcı eklentisini kullanan bir örnek.

if ($.url().param('backDisable') === 'true') {
  $('#backButton')[0].disabled = true;
}
0
katma
jQuery Mobile ayrıca URL'leri ayrıştırmak için bazı yöntemlere sahiptir ( $. mobile.path.parseUrl gibi): jquerymobile.com/demos/1.0rc2/docs/api/methods.html
katma yazar Jasper, kaynak

Ziyaret edilen sayfa dizisini ayarlamak ve son sayfanın giriş sayfası olup olmadığını görmek için kontrol etmek:

//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
katma
Bunu yaptım, sadece sayfa geçmişini içeren bir dizi yerine sadece son sayfayı saklıyorum. Sadece önceki sayfa önemlidir
katma yazar Jay, kaynak

Giriş formuna data-ajax = "false" ekleyin. Giriş formunuzun ve giriş ekranınızın aynı alanda olduğunu varsayalım.

Yani example.com'a gittiğinizde giriş formunu görürsünüz (giriş yapmamışsanız) ... example.com'a gittiğinizde bir karşılama ekranı görürsünüz ...

İndeks düzenimin PHP örneği ... (kirli):

<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 mobil sayfa bağlantıları

0
katma