我们可以检索本地存储,甚至我们在离子3应用程序中使用sqlite存储

时间:2017-08-02 10:56:27

标签: angularjs ionic-framework ionic2 native ionic3

我已经在Ionic 2测试版中运行了一个应用程序,并且我使用本地存储来存储登录的user_id以检查用户是否已登录。 现在我将应用程序切换到Ionic 3,现在我正在使用Ionic的SQLite存储,所以问题是,在从应用程序商店更新应用程序后,我不想要求再次登录我的用户。我想获取设备本地存储并在SQLite中输入并删除。

这里是我为Ionic 2 beta app做的事情

import { Storage, LocalStorage } from 'ionic-angular';

...

    constructor () {
        this.local = new Storage(LocalStorage);
    }

    this.local.set('user_id', user_id);

在Ionic 3应用程序中:

import { Storage } from '@ionic/storage';

...

    constructor(public local: Storage) {
        this.local.get('user_id').then((user_id) => {
            console.log('USER ID: ' + user_id);
        });
    }
    ...

问题:现在我想要的是,如果用户更新他的应用程序,那么系统首先检查本地存储是否已经为应用程序设置,如果是,则系统将它们设置为新应用程序并将其删除,这样用户就不需要更新应用后再次注册。

有什么想法吗? 提前谢谢。

2 个答案:

答案 0 :(得分:0)

您可以做的就是首先检查本地存储的值,如果您有任何数据。

像这样我把这个代码放在我的app.component

          //initialize the storage
           this.storage.get('credentials').then(data => {
                //check if data is null or no data yet.
                if (data != null) {

                  // you can do is to
                  this.nav.setRoot(login);

               } else {

                 //or is here is a logged user you can do
                 this.nav.setRoot(home);

                }
              }).catch(error => {

              });

答案 1 :(得分:0)

我找到了一个解决方案,非常简单。 只需使用核心javascript获取本地存储,如下所示:

let preLocalStorage =  window.localStorage;
let user_id   = preLocalStorage.getItem('user_id');

然后将值放在sqlite中,如下所示:

this.local.set('user_id',user_id);

它完美无缺!

谢谢