SecureStorage не установлен, но в Ionic3 - PullRequest
0 голосов
/ 19 сентября 2018

Я мигрирую Хранилище в SecureStorage .Нормальное хранилище работало нормально, но у меня проблемы с безопасным хранилищем на всех платформах.

Я установил плагин, как здесь описано.Но если я запускаю приложение в браузере или на Android, я получаю следующие ошибки:

plugin_not_installed
(...)
ERROR Error: "Uncaught (in promise): TypeError: this.storage is undefined
[42]/DataProvider.prototype.getLoginData

Я импортировал SecureStorage в качестве поставщика в app.module.ts.

app.component.ts выглядит так:

constructor(public platform: Platform, public statusBar: StatusBar, public splashScreen: SplashScreen, private dataProvider: DataProvider, private restProvider: RestProvider) {
    this.initializeApp();

     // ...
  }

initializeApp() {
  this.platform.ready().then(() => {
    this.statusBar.styleDefault();

    this.dataProvider.getLoginData().then((loginData) => {
      console.log(loginData);
    }, (error) => {
      console.error(error);
  });
}

И DataProvider выглядит следующим образом:

import {Injectable} from '@angular/core';
import {SecureStorage, SecureStorageObject} from '@ionic-native/secure-storage';


/**
 * @see https://ionicframework.com/docs/native/secure-storage/
 * @see https://github.com/Crypho/cordova-plugin-secure-storage
 */
@Injectable()
export class DataProvider {

  storage: SecureStorageObject;

  constructor(private secureStorage: SecureStorage) {
    this.secureStorage.create('com.mydomain.myapp').then((storage: SecureStorageObject) => {
      DevProvider.logDebugMsg('secureStorage created');
      this.storage = storage;
    }, (error) => {
      console.error('creating secureStorage failed: ', error); // output is: plugin_not_installed
    });
  }

  getLoginData() {
    return this.storage.get('loginData');
  }
}

Что здесь не так?

Спасибо.

...