首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当应用程序使用jquery mobile加载cordova应用程序singlepage中的页面时,触发事件的最佳方式是什么?

当应用程序使用jquery mobile加载cordova应用程序singlepage中的页面时,触发事件的最佳方式是什么?
EN

Stack Overflow用户
提问于 2014-05-16 22:57:50
回答 1查看 1.8K关注 0票数 0

我试图在加载我的应用程序时触发和事件:当应用程序启动时,我加载#主页,但如果用户没有被缓存(我使用kinvey),应用程序应该将页面更改为#login。我如何才能做到这一点?

我在myScript.js文件的开头尝试了这段代码,这是在开头声明的:

代码语言:javascript
复制
$('#home').on( 'pageshow',function(){
    var user = Kinvey.getActiveUser();
    var promise = Kinvey.User.me({
    success: function(response) {
    $.mobile.changePage('#login'); //should change page here
    });
}

我很感激关于触发什么事件的建议,因为jquerymobile文档中有很多,我不知道哪一个更方便。

EN

回答 1

Stack Overflow用户

发布于 2014-05-17 02:57:27

尝试:

代码语言:javascript
复制
$(document).on( 'mobileinit' , function(){ // will fire as soon as jQM is loaded
    var user = Kinvey.getActiveUser();
    var promise = Kinvey.User.me({
    success: function(response) {
    $.mobile.changePage('#login', {transition: 'none'}); //should change page here
    });
}

替代方案可能包括:

代码语言:javascript
复制
$('#home').on( 'pageinit' ,function(){ /*stuff*/ }); //will fire the first time #home is loaded
$('#home').on( 'pagebeforeshow' ,function(){ /*stuff*/ }); //will fire before home is shown (don't do this, it'll check every time)

如果你使用的是cordova,并且在config中启用了启动页面,你可以尝试一下:

代码语言:javascript
复制
$(document).on( 'mobileinit' , function(){ // will fire as soon as jQM is loaded
    var user = Kinvey.getActiveUser();
    var promise = Kinvey.User.me({
    success: function(response) {
        $.mobile.changePage('#login', {transition: 'none'}); //should change page here
        if (navigator.splashscreen /* || 1 */ ){ // so it doesn't crash when you're testing on your browser
            navigator.splashscreen.hide(); 
        }
    }
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23698464

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档