2012-03-30 83 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