Framework7:登录重定向

Framework7: Login redirect

本文关键字:重定向 登录 Framework7      更新时间:2023-09-26

当用户访问login.html页面时,localStorage用于检查用户是否登录。页面应重定向到profile.html并显示notification消息。显示消息,但页面(login.html)是相同的。。

if( localStorage.user_login ) {
    mainView.router.loadPage({url:'profile.html', ignoreCache:true, reload:true });
myApp.addNotification( {
        message: 'Welcome '+ localStorage.user_username +'!'
      } );
}

如果用户已登录,我如何重定向页面?

将其放在myApp framework7初始化之前。

    $$(document).on('pageInit', function (e) {
       var page = e.detail.page;
       if (page.name === 'index') {
         try{
           var storedData = window.localStorage['f7form-'+ 'idofyourloginform'];
          if(storedData) {
              //do your ajax login request here
              // if successful do your login redirect  
                 mainView.router.loadPage({url:'profile.html', ignoreCache:true, reload:true });
           }
       }
     );

在登录页面中,使用以下代码:

HTML

<a href="#" class="button button-fill color-blue close-login-screen" @click="signIn">Log In </a>

JavaScript

return {
  methods: {
    signIn: function () {
      var $ = this.$;
      var app = this.$app;
      var username = $('input#demo-username-1').val();
      var password = $('input#demo-password-2').val();
      app.request.post('http://localhost:4103/api/User/Login?username='+username+'&password='+password, function (data) {
        var obj = JSON.parse(data);
        console.log(obj);
        console.log(obj.success);
        if (obj.success) {
          app.data.IsLogin=true;
          app.data.UserName='salman';
          app.views.main.router.navigate(obj.RedirectUrl);       
        } else {
          app.dialog.alert(obj.Message , function () {});
        }
      });
    }
  }
}

尝试调用

myApp.closeModal('.login-screen.modal-in') 

之前

 mainView.router.loadPage({url:'profile.html', ignoreCache:true, reload:true })

这应该能解决问题。

使用jquery 在Framework7中登录页面ajax发布和响应

在你的my-app.js文件中使用这样的代码

myApp.onPageInit('sign-in', function(page) {
$('#loginb').click(function() {
    $('#loginb').html('Please Wait...');
    var fuid = $('#uid').val();
    var fpass = $('#pass').val();
    $.ajax({
        url: 'chklogin.php',
        data: {
            "uid": fuid,
            "pass": fpass
        },
        type: 'post',
        success: function(returnedData) {
            $('#loginb').html(returnedData);
            if (returnedData == "Success") {
                mainView.router.load({
                    url: 'deshboard.php',
                    ignoreCache: true
                });
            } else {
                mainView.router.load({
                    url: 'login.php',
                    ignoreCache: true
                });
            }
        }
    });
});
});

将此函数与路由名称一起使用:app.views.main.router.navigate('/profile');

但请确保app是您初始化项目的对象,例如:

var app = new Framework7({....});