2012-03-30 86 views
4

我在PhoneGap中使用了jQuery mobile,並希望在第一次使用該應用程序時顯示登錄頁面,並在隨後的加載中顯示索引頁面。jquery mobile中的條件初始頁面

我目前的解決方案是使用上deviceready

if(!localStorage.registered){ 
    $.mobile.changePage("#login", { transition: "none"}); 
} 

以下然而,我的這個問題是,你仍然看到網頁過渡。我希望登錄頁面成爲可見的第一頁。

有什麼建議嗎?謝謝!

+0

我不知道phonegap,但這樣做的工作? 'webView.loadUrl(「yourpage#login」);'而不是你在裏面有'if'這樣的行stmt – uday 2012-03-30 00:48:06

回答

3

這Q是一個幾個月大,但它仍然沒有答案,我沒有與手機的差距任何經驗,但我做JQM,所以我想這可能有幫助。

我目前在我的應用上通過延遲jQM的自動初始化來解決這個問題。 這是一個例子,你如何可以鬆散地基於我的應用程序如何做到這一點。

(function() { 

    #stop jQM from auto initialising 
    $(document).on("mobileinit",function() { 
    $.mobile.autoInitializePage = false; 
    }); 

    var my_app = new MyApp(); 

    # custom afterinit event is triggered on the app instance 
    $(my_app).on('afterinit',function() { 
    var initial = 'login'; 
    if(localStorage.registered) { 
     initial = 'home'; 
    } 
    # set the page hash to our start page 
    window.location.hash = initial; 

    #initialise jQM 
    $.mobile.initializePage(); 
    }); 

})(); 

確保您安全是決定是否允許登錄,在我的應用我有一個是由AJAX應用程序需要以MyApp.appdata它只會在那裏,如果登錄竟是成功的數據結構的東西。

+0

這和我最終做的事情類似,但是我會給你接受的答案,因爲你記錄了它:)謝謝! – CambridgeMike 2012-05-23 16:09:30

+0

很高興你管理它到最後,我想你可能會只爲別人作爲參考作爲一種可能的解決方案。祝你今天愉快。 – Rob 2012-05-23 16:12:36

+0

我試圖用jqm做同樣的事情,我不明白'var my_app = new MyApp()'行......也不是自定義事件... – Matthieu 2013-04-02 15:06:08

0

有關隱藏#registration然後#login做什麼:

if(localStorage.registered){ 
    $('#login').show(); 
} else { 
    $('#registration').show(); 
} 
1

另一種解決方案可能是有一個代理頁面。 我在另一個應用上採用了另一種方法。

初始「加載」步驟,這只是一個虛擬頁面。 在您的文檔中創建一個頁面作爲第一頁,例如。

<div id="loading" data-role="page">Loading</div> 

在mobileinit步驟中綁定到pageshow事件。

$(document).on("mobileinit",function() { 
    $('#loading').on('pageshow',function() { 

    # ... 
    # do login check here 
    # ... 

    var initial = 'login'; 
    if(localStorage.registered) { 
     initial = 'home'; 
    } 
    # change to our initial page 
    $.mobile.changePage(initial); 
    }); 

}); 
+0

當'$ .mobile.autoInitializePage = false'時changePage不起作用 – 2016-09-10 11:58:26