Лучший способ инициировать событие, когда приложение загружает страницу в приложении Cordova Singlepage с помощью jquery mobile?
Я пытаюсь запустить событие при загрузке моего приложения: при запуске приложения я загружаю страницу #home, НО, если пользователь не кэшируется (я использую kinvey), приложение должно изменить страницу на #login. Как я могу это сделать?
Я попытался этот код в начале файла myScript.js, и это объявлено в начале:
$('#home').on( 'pageshow',function(){
var user = Kinvey.getActiveUser();
var promise = Kinvey.User.me({
success: function(response) {
$.mobile.changePage('#login'); //should change page here
});
}
Я был бы признателен за предложения о том, какое событие вызвать, потому что в документации jquerymobile их много, и я не знаю, какой из них удобнее.
1 ответ
Пытаться:
$(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
});
}
Альтернативы могут включать:
$('#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 и включили заставку в конфигурации, вы можете попробовать:
$(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();
}
}
});