使用存储的凭据自动登录PhoneGap Onsen UI应用程序

获奖者

我有这个使用PhoneGap,Onsen UI和AngularJS制作的移动应用程序。

我有一个index.html文件,其中具有以下页面结构:

index.html
     - <ons-navigator var="myNavigator" page="login.html">

     - <ons-template id="login.html">
            - <ons-page ng-controller="LoginController" id="login">
     - <ons-template id="main.html">
            - <ons-page ng-controller="AppController" id="main">
                  - <ons-tabbar>
                     - <ons-tab active="true" page="upcoming.html">
                     - <ons-tab active="true" page="completed.html">
                     - <ons-tab active="true" page="settings.html">
     - <ons-template id="upcoming.html">
     - <ons-template id="completed.html">
     - <ons-template id="settings.html">

login.html页面要求提供用户凭据,当用户单击“登录”时,这些凭据将存储在window.localStorage对象中。

下次加载该页面时,我希望该应用程序不导航到login.html页面(不显示它),而是检查localStorage中的凭据,并使用myNavigator推送到main.html页面,就像成功登录一样。

我有一个main.js文件,里面有两个控制器,在控制器定义之外,还有一个ons.ready函数,该函数在加载Onsen框架时触发。

ons.ready(function() {
    var storage = window.localStorage;
    if(credentials_found_in_localStorage)
        myNavigator.pushPage('main.html');
    }
});

此功能有效,但在pushPage发生之前,将显示login.html页面几秒钟(直到登录成功与否我才回来)

我如何才能使用已存储的凭据并跳过login.html页面,进行具有功能的自动登录?

处理此问题的最佳方法是什么?(也许是启动画面?)

弗兰·上帝

您可以在没有指定页面(删除page="login.html"属性)的情况下启动导航器,然后在所需的页面上加载ons.ready()

ons.ready(function() {
  if(credentials_found_in_localStorage) {
    nav.resetToPage('main.html');
  } else {
    nav.resetToPage('login.html');
  }
});

在此处工作(更改的值isLogged):http : //codepen.io/frankdiox/pen/eNmNoz

另一种可能的解决方案是删除您的ons-navigator,因为我认为您仅将其用于日志记录目的,ons-modal而是使用为此,您必须将ons-tabbar其作为主要元素(移除ons-template id="main.html"包装纸)。该模式在里面你可以包括你的实际login.html页面,只有做myModal.show()ons.ready,如果用户没有登录。当他登录你只需要做的myModal.hide()如果您不希望在用户登录之前在选项卡中加载第一页,myTabbar.loadPage(...)请在登录检查后使用

希望能帮助到你!

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Facebook凭据登录我的应用程序

来自分类Dev

Onsen-UI-ons-tabbar页面过渡

来自分类Dev

您(当前)如何使用Onsen-UI更改应用的总体主题和外观?(不仅仅是颜色)

来自分类Dev

Onsen UI应用程序中的渲染画布元素

来自分类Dev

使用Onsen UI的下拉选项菜单

来自分类Dev

使用onsen ui时导航栏文本未在设备上居中

来自分类Dev

无法在Visual Studio多设备混合应用程序(Cordova)项目中使用Onsen UI

来自分类Dev

使用Onsen Ui创建类似Android的Popover

来自分类Dev

在Onsen UI中使用多个HTML文件

来自分类Dev

Ons导航(onsen UI),使用javascript代码

来自分类Dev

如何使用Onsen UI操作DOM

来自分类Dev

使用带有导航器的滑动菜单的Onsen-UI

来自分类Dev

在选项卡中使用Onsen UI拉钩时抛出错误

来自分类Dev

使用带有导航器后退按钮的滑动菜单的Onsen-UI

来自分类Dev

jQuery的Onsen UI Navigator

来自分类Dev

如何在Onsen ui应用程序列表中显示滚动条

来自分类Dev

Javascript无法在Onsen UI的ons模板中使用

来自分类Dev

Onsen uI:Controll android backbutton路线:

来自分类Dev

如何使用onsen ui存储登录信息?

来自分类Dev

带有Onsen UI的AngularJS

来自分类Dev

与Onsen UI一起使用时,Videogular控制器不起作用

来自分类Dev

Onsen UI + InMobi集成

来自分类Dev

如何更新onsen-ui状态?

来自分类Dev

onsen-ui中的导航栏

来自分类Dev

带有Jquery的Onsen UI

来自分类Dev

jQuery的Onsen UI Navigator

来自分类Dev

ONSEN UI将不同的颜色应用于每个列表

来自分类Dev

在Onsen UI 2中使用Datepicker插件

来自分类Dev

Onsen-ui:如何在 ios 设备上强制使用 Android 外观?