Сохранять данные на диске с помощью API расширения Chrome

Я пытаюсь сохранить некоторые данные, которые должны быть доступны даже при перезапуске браузера. Поэтому эти данные должны сохраняться. я использую Chrome Storage Sync API для этого. Но когда я перезагружаю браузер, при использовании я получаю пустой объект chrome.storage.get,

Вот мой пример кода:

SW.methods.saveTaskListStore = function() {
  chrome.storage.sync.set({
    'taskListStore': SW.stores.taskListStore
  }, function() {
    if (SW.callbacks.watchProcessSuccessCallback) {
      SW.callbacks.watchProcessSuccessCallback(SW.messages.INFO_DATA_SAVED);
      SW.callbacks.watchProcessSuccessCallback = null;
    }
  });
};

SW.methods.loadTaskListStore = function() {
  SW.stores.loadTaskListStore = [];

  chrome.storage.sync.get('taskListStore', function(taskFeed) {
    var tasks = taskFeed.tasks; 

    if (tasks && !tasks.length) {
      SW.stores.loadTaskListStore = tasks;
    }
  });
};

Я думаю, что я использую неправильный API.

1 ответ

Решение

Если это не какая-то ошибка копирования-вставки, вы сохраняете под ключ taskListStore и пытается получить данные под ключ loadTaskListStore,

Кроме того, согласно документации по StorageArea.get (), результирующий объект является объектом с элементами в их сопоставлениях значения ключа. Таким образом, в вашем случае вы должны сделать:

chrome.storage.sync.get("taskListStore", function(items) {
    if (items.taskListStore) {
        var tasks = items.taskListStore.tasks;
        ...
Другие вопросы по тегам