2013-07-30 4 views
3

У меня есть простое расширение, которые сохраняют некоторые данные в хранилище хромированногоchrome.storage.sync не синхронизируется между машинами

var dt = new Date(); 
var item = {}; 
item[$('#qteSymb').text() + "-" + guid()] = $('#newnote').val() + "-:-" + $.datepicker.formatDate('mm/dd/yy', dt) + " " + dt.getHours() + ":" + (dt.getMinutes() < 10 ? "0" + dt.getMinutes() : dt.getMinutes());   
chrome.storage.sync.set(item, function(){ 
    renderNotes(); 
}); 

Это отлично работает локально - мое расширение работает как задумано - но это не делает синхронизировать с другим компьютером. Я предполагаю, что синхронизация включена на обоих компьютерах, потому что закладки, расширения и т. Д. Синхронизируются просто отлично.

Спасибо!

ответ

9

Итак, я, наконец, понял это. Если вы не используете Chrome Web Store ваш файл манифеста должен включать в себя ключ (https://developer.chrome.com/extensions/manifest.html#key)

... 
"key":"myawesomeextension" 
... 

Без этого каждый раз, когда вы установите расширение на другом устройстве (через хром: // расширения/-> Load распакованы расширение), он получает новый идентификатор, и поэтому синхронизируемые данные не соответствуют соответствующему расширению - такое же расширение с разными идентификаторами = два разных расширения в глазах Chrome.

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

+0

Не удалось загрузить расширение из: ~ \ Documents \ .. Значение «ключ» отсутствует или недействительно. – JerryGoyal

+0

Знаете ли вы, что это проблема? – Magix