PhoneGap应用程序中的“记住我”功能

时间:2014-06-26 13:09:51

标签: cordova

我是PhoneGap开发的新手。我的PhoneGap应用程序有一个登录页面,我需要实现一个"记住我"进入此登录页面的选项。我不知道任何人都可以帮助我的这个功能。我想要一些关于此功能的示例代码。

请参阅以下我试过的代码,

function checkPreAuth() {
    /* console.log("checkPreAuth");*/
    if(window.localStorage.getItem("remember") == true)
    {
        if(window.localStorage.getItem("username") != undefined && window.localStorage.getItem("password") != undefined) {

            var form = $("#loginForm");
            $("#Username", form).val(window.localStorage.getItem("username"));
            $("#Password", form).val(window.localStorage.getItem("password"));
            $("#remember_me", form).attr('checked', true).checkboxradio("refresh");
    handleLogin();
        }
    }
}

$(document).on('pageinit', '#loginPage', function(){
               //getTimezoneName();
                $('#submitButton').click(function(e){
                                         e.preventDefault();
                                         var u = $("#Username").val();
                                         var p = $("#Password").val();
handleLogin();
});
});

function handleLogin()
{
    var form = $("#loginForm");
    $("#submitButton",form).attr("disabled","disabled");
    var u = $("#Username", form).val();
    var p = $("#Password", form).val();
    if(u != '' && p!= '')
    {        
        $.ajax({
               url: 'http://samplewebsite.com/API/login_api',
               type: 'post',
               dataType: 'json',
               data: $('form#loginForm').serialize(),
               crossDomain: 'true',
               success: function(data)
               {
               if(data)
               {
               //window.localStorage.setItem("key", "value");
               // var keyname = window.localStorage.key(i);
               if($("#remember_me").is(':checked'))
               {
               window.localStorage.setItem("remember", $("#remember_me").is(':checked'));
               }
               window.localStorage.setItem("userId", data.id);
               window.localStorage.setItem("username", u);
               window.localStorage.setItem("password", p);

               $.mobile.changePage("Inbox.html");
               }
               else
               {
               navigator.notification.alert("Your login failed", function() {});               
               }              

               },error: function (xhr, ajaxOptions, thrownError) {               
               navigator.notification.alert("Your login failed",null);
               }

               });
    }
    else
    {
        navigator.notification.alert("You must enter a username and password", function() {},"");       
    }    
}

1 个答案:

答案 0 :(得分:2)

<强> HTML

<!DOCTYPE html>
<html>
    <head>
        <title>Car</title>
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <link rel="stylesheet" href="http://code.jquery.com/mobile/1.4.2/jquery.mobile-1.4.2.min.css">
        <script src="http://code.jquery.com/jquery-1.10.2.min.js"></script>
        <script src="http://code.jquery.com/mobile/1.4.2/jquery.mobile-1.4.2.min.js"></script>                   
    </head>
    <body>
      <div data-role="page" id="page_login" >
        <div data-role="header">
            <h1>Login</h1>
        </div><!-- /header -->
        <div role="main" class="ui-content" id="content">
            <form id="frm_login">
                <input type="text" value="" id="username" name="username" placeholder="Username" />
                <input type="password" value="" id="vPassword" name="vPassword" placeholder="Password" />
                <input type="checkbox" name="remember_me" id="remember_me" class="custom check" />
                <label for="remember_me" class="check-label" id="lbl_rem_me">Remember Me</label>

                <a href="" class="ui-btn" data-transition="slide" data-role="none" id="btn_log">Login</a>
            </form>
        </div>           
      </div>
    </body>
</html>

<强>的Javascript

<script>
$(document).on("pageshow", "#page_login", function(e){
    if(window.localStorage["username_rem"] != undefined && window.localStorage["password_rem"] != undefined) 
    {
        if(window.localStorage["username_rem"] != "" && window.localStorage["password_rem"] != ""){                 
          $('#frm_login :input[id=username]').val(window.localStorage["username_rem"]);
          $('#frm_login :input[id=vPassword]').val(window.localStorage["password_rem"]);
          $("#remember_me").attr('checked', true).checkboxradio("refresh");
       }                
    }
})

$(document).on("click", "#btn_log", function(e){
    var u = $('#frm_login :input[id=username]').val();
    var p = $('#frm_login :input[id=vPassword]').val();
    if($("#remember_me").is(':checked')){               
      window.localStorage["username_rem"] = u;
      window.localStorage["password_rem"] = p;                        
    }else{
      window.localStorage["username_rem"] = "";
      window.localStorage["password_rem"] = ""; 
    }
})      
</script>