我使用登录构建应用程序,我更喜欢在登录状态,甚至离线。因此,我尝试使用已保存在localstorage中的用户名和密码进行自动登录。我希望当应用程序打开时,它会直接转到#konfirmasi页面(我的主要功能页面)(比如facebook中的壁纸页面),而不是#home页面。所以我在index.html中尝试了这样的代码javascript:
<script type="text/javascript">
var u_name=localStorage.getItem("uname");
var u_pwd=localStorage.getItem("passwd");
$(document).on('pageinit', '#home', function(){
if(u_name==""||u_name==null||u_name=="null" ||u_name=="undefined" ||
u_pwd==""||u_pwd==null ||u_pwd=="null" || u_pwd=="undefined"
){
$.mobile.changePage("#home");
console.log('Please Login!');
} else{
$.mobile.changePage("#konfimasi");
console.log('You can confirm a code');
}
});
</script>
记录成功
您可以确认代码
但它仍在#home页面中。那么,这段代码有什么问题呢?它应该如何?
这是我的登录脚本:
$(document).on('pageinit','#login',function(){
$(document).on('click','#submit',function(){
if($('#username').val().length>0&&$('#password').val().length>0){
var un = $('#username').val();
var pw = $('#password').val();
$.ajax({
url:'http://qrkonfirmasi.16mb.com/delivery/login.php',
data:{ username : un,
password : pw
},
type:'post',
async:'false',
dataType: 'json',
beforeSend:function(){
$.mobile.loading('show',{theme:"a",text:"Please wait...",textonly:true,textVisible:true});
},
complete:function(){
$.mobile.loading('hide');
},
success:function(result){
console.log(result);
if(result.status==true){
user.name=result.message;
// window.localStorage.setItem('kode', JSON.stringify(result.kode));
// var kode = window.localStorage.getItem('kode');
// var kode = result.kode;
// console.log('Kode: ', kode);
// console.log('Kode length: ', JSON.parse(kode).length);
console.log('Login Berhasil');
// console.log(window.localStorage.getItem('kode'));
$.mobile.changePage("#konfirmasi");
window.localStorage.setItem('uname', un);
window.localStorage.setItem('passwd', pw);
}else{
alert('Login gagal. Username atau password tidak sesuai');
}
},
error:function(request,error){
alert('Koneksi error. Silahkan coba beberapa saat lagi!');
}
});
}else{
alert('Masukkan username dan password!');
}
return false;
});
});