chrome.storage не работает

У меня есть приложение Google Chrome, и я попытался использовать chrome.storage.sync.get, и он говорит, "не могу прочитать синхронизацию свойств неопределенного". Может кто-нибудь сказать, пожалуйста, что происходит? Я попытался скопировать и вставить точную строку с сайта разработчика Chrome.

Код буквально:

$(".thing").click(function() {chrome.storage.sync.set(stuff)}

Насколько я могу судить, ошибка в том, что я пытаюсь использовать API хранилища Chrome в Google Chrome, а не в качестве приложения.

2 ответа

Оказывается, я пытался запустить это в Google Chrome (браузер), а не как приложение Chrome. Chrome не знает, что он должен анализировать код как приложение, и игнорирует строку о chrome.storage, Что-то, чего стоит остерегаться, разработчики Chrome!

Пожалуйста, следуйте этим шагам, пока вы используете chrome.storage.sync

  1. Объявите разрешения хранения в вашем манифесте.

manifest.json

{
  "manifest_version": 2,

  "name": "Storage",
  "description": "This extension shows a Google Image search result for the current page",
  "version": "1.0",
  "icons":{
"256":"img/icon.png"
    },
  "permissions": [
    "storage"
  ],
  "app": {
    "launch": {
      "local_path": "options.html"
    }

  },
   "background": {
    "scripts": ["js/app/background.js"]
  }

}
  1. Перезагрузите приложение в chrome://extensions так что ваш manifest.json обновляется в вашем браузере.

  2. Следуйте точному синтаксису chrome.storage.sync с его функцией обратного вызова.

Sample.js

$(".thing").click(function() {
      chrome.storage.sync.set({"myKey": "testPrefs"},function(){
       alert("object stored");
})
    chrome.storage.sync.get("myKey",function(obj){
        alert(obj.myKey);
    })
});

Это будет работать для вас. Я проверил этот код в моем приложении Chrome.

Другие вопросы по тегам