Phonegap - автоматическое перенаправление на страницу

Я хочу разработать мобильное приложение с использованием веб-стека и пакета с телефонной связью. Моя страница index.html будет содержать форму входа. У меня есть функция js checkLoggedIn(); который проверяет, вошел ли пользователь в систему, ища переменную localStorage.

Вызов: я хочу, чтобы index.html автоматически перенаправляло на member.html, если checkLoggedIn() возвращает true; в противном случае он не будет перенаправляться и просто останется на index.html, это означает, что checkLoggedIn() будет работать на index.html при загрузке.
Я не знаю, какое событие запустить или как запустить его для достижения этой цели.


person bodesam    schedule 06.09.2017    source источник
comment
Итак, вам нужна функция автоматического входа в систему, когда когда-либо пользователь закрывает приложение и открывает его снова, оно должно перенаправлять на внутреннюю страницу, верно?   -  person Madpop    schedule 06.09.2017
comment
Что-то такое.   -  person bodesam    schedule 06.09.2017


Ответы (2)


Это мой рабочий код для функции автоматического входа в систему, надеюсь, он работает как для Android, так и для iOS.

Ниже приведен код кнопки входа после ввода имени пользователя и пароля.

  $('#login').click(function () {
    var userName = $('#Username').val();
    var password = $('#password').val();

    if (userName == "" || password == "") {
        window.plugins.toast.showLongBottom("Please enter a valid data");
        return false;
    }

       var options = { dimBackground: true };
    SpinnerPlugin.activityStart("Loading...", options); 

    $.ajax({
        type: 'GET',
        url: xxxxxx.xxxx.xxxxx,
        data: "uid=" + userName + "&pwd=" + password + "",

        success: function (resp) {
            SpinnerPlugin.activityStop();
            if (resp.status != 0) {
                if (resp.RoleId == 1) {

                    mash.Session.getInstance().set({
                        userId: resp.sno,
                        userName: resp.Name,

                    });
                    var session = mash.Session.getInstance().get();
                    window.open('Add.html', '_self', 'location=no');

                    // Create session. 
                    var today = new Date();
                    var expirationDate = new Date();
                    expirationDate.setTime(today.getTime() mash.Settings.sessionTimeoutInMSec);
                }
                else {
                    SpinnerPlugin.activityStop();
                    mash.Session.getInstance().set({

                        userId: resp.sno,
                        userName: resp.Name,

                    });
                    var session = mash.Session.getInstance().get();

                    var username = userName;
                    var password = password;

                    window.localStorage.setItem("uname", resp.Name);
                    window.localStorage.setItem("pass", password);
                    window.localStorage.setItem("sno", resp.sno);

                    window.localStorage.setItem("RoleId", resp.RoleId);


                    window.open('Main.html', '_self', 'location=no');
                    //window.plugins.toast.showLongBottom("Login Successfull");
                    // Create session. 
                    var today = new Date();
                    var expirationDate = new Date();
                    expirationDate.setTime(today.getTime() + mash.Settings.sessionTimeoutInMSec);

                }

            }
            else {

                SpinnerPlugin.activityStop();
                window.plugins.toast.showLongBottom("Please Enter valid Username and password");
                SpinnerPlugin.activityStop();

            }

        },
        error: function (e) {
          SpinnerPlugin.activityStop();
            window.plugins.toast.showLongBottom("Invalid Data");
            SpinnerPlugin.activityStop();
        }
    });


});

после этого в index.html используйте обработчик загрузки fillpassword(), чтобы использовать эту функцию ниже

function fillpassword() {

    if (window.localStorage.getItem("uname") != 0) {


        mash.Session.getInstance().set({

            userId: window.localStorage.getItem("sno"),
            userName: window.localStorage.getItem("uname"),


        });
        if (window.localStorage.getItem("RoleId") != 1) {

            document.getElementById('Username').value = window.localStorage.getItem("uname");
            document.getElementById('password').value = window.localStorage.getItem("pass");

            window.open('Main.html', '_self', 'location=no');
        }
    }
    else {
        //alert("Yes")

    }
}

приведенный выше код работает, и все, что вам нужно для поддержания сеанса

person Madpop    schedule 06.09.2017
comment
Где находится обработчик загрузки - person bodesam; 06.09.2017
comment
@bodesam fillpassword() — мой обработчик загрузки. когда я закрываю свое приложение и снова открываю его, оно не будет запрашивать вход в систему напрямую, я перенаправлю его на другую страницу - person Madpop; 06.09.2017
comment
как заставить эту функцию запускаться автоматически при загрузке страницы - person bodesam; 06.09.2017
comment
@bodesam Во-первых, я сохраняю значение имени пользователя и пароля в сеансе, а затем в локальном хранилище. на следующем шаге, когда пользователь завершает работу приложения, затем снова открывает его, затем мы берем значения имени и пароля из локального хранилища и автоматически регистрируем страницу, и мы будем использовать ‹body onload=fillpassword()› - person Madpop; 06.09.2017
comment
‹body onload=fillpassword()› это то, что я ищу. Вы уверены, что это работает? - person bodesam; 06.09.2017
comment
@bodesam Это рабочий фрагмент кода в моем проекте, и вам нужно поддерживать сеанс для этого. - person Madpop; 06.09.2017
comment
Давайте продолжим обсуждение в чате. - person bodesam; 06.09.2017

Что о:

if(checkLoggedIn()) window.location = "member.html";
person Sumi Straessle    schedule 06.09.2017