Плагин Cordova Native Storage не определен в приложении iOS - PullRequest
0 голосов
/ 23 сентября 2019

Я установил последнюю версию плагина Cordova Native Storage (https://github.com/TheCocoaProject/cordova-plugin-nativestorage) в мой проект Cordova / Nuxt JS. Я пытаюсь сохранить некоторые данные, когда нажимаю кнопку, и выслать их обратнокогда нажата другая кнопка:

<template>
  <div class="fill-height has-safe-area-top">
    <v-container>
      <v-layout row pb-2>
        <v-flex>
          <h1>Native storage test</h1>
          <v-btn @click="storeData">Store</v-btn>
          <v-btn @click="getData">Get</v-btn>
        </v-flex>
      </v-layout>
    </v-container>
  </div>
</template>

<script>
export default {
  methods: {

    storeData() {
      NativeStorage.initWithSuiteName("suitename");
      NativeStorage.setItem("reference_to_value", "my value");
    },

    getData() {
      alert(NativeStorage.getItem("reference_to_value"))
    }

  }
}
</script>

Кажется, что возвращается undefined на alert() при тестировании на физическом устройстве, скомпилированном в Xcode 10.

1 Ответ

1 голос
/ 23 сентября 2019

Как мы можем прочитать из документации, метод setItem имеет функцию обратного вызова для успешного выполнения и ошибки, поэтому я делаю вывод, что эта функция асинхронная.

NativeStorage.setItem("reference_to_value",<value>, <success-callback>, <error-callback>);

Я думаю, что вы нажимаете слишком быстро на вторую кнопку ичто первый метод еще не закончил запись своей переменной в собственное хранилище телефона

Попробуйте что-то вроде этого:

storeData() {
  NativeStorage.initWithSuiteName("suitename");
  NativeStorage.setItem("reference_to_value", "my value", () => {
      alert("SUCCESS");
  }, () => {
      alert("ERROR");
  });
},

И ничего не трогайте, пока предупреждение не показывалось

getItem также является методом "обратного вызова", который ничего не возвращает.Вы должны обработать обратный вызов этой функции следующим образом:

getData() {
    NativeStorage.getItem("reference_to_value", (value) => {
        alert(value);
    }, () => {
        alert("ERROR");
    });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...