我们可以检索本地存储,即使我们在 ionic 3 应用程序中使用 sqlite 存储



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

这是我为Ionic 2测试版应用程序所做的工作

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);
});
}
...

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

知道吗? 提前谢谢。

好的,您可以做的是首先检查本地存储的值,如果其中包含任何数据。

像这样,我把这段代码放在我的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 => {
});

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

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

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

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

它工作完美!

谢谢

最新更新