我在扩展程序中使用chrome.storage.sync
来同步popup.html
中textarea中输入的数据。
它在本地正确存储和恢复数据,但不会跨浏览器同步数据。
每个浏览器扩展都有自己的本地输入数据。
以下代码用于保存和恢复数据:
// Called when the user opens popup.html
$(window).ready(
function restore() {
var textarea = document.querySelector("#contacts");
chrome.storage.sync.get('contacts', function(r) {
console.log("Contacts retrieved");
var content = r["contacts"];
textarea.value = content;
});
});
// Called when user saves his changes to the textarea
$("#save-button").click(function() {
var textarea = document.querySelector("#contacts").value;
var save = {};
save["contacts"] = textarea;
// Save data using the Chrome extension storage API.
chrome.storage.sync.set(save, function() {
console.log("Contacts saved");
});
$("#confirm").text("Contacts saved.").show().fadeOut(5000);
});
在我的manifest.json
我授予对storage
的权限:
"permissions": [
"tabs",
"http://*/*",
"storage"
]
}
Chrome Sync不能跨浏览器和设备同步的原因是什么?
答案 0 :(得分:3)
您的扩展程序是否已上传到您的Chrome网上应用店帐户并已发布(或至少已发布给您的测试人员)?
我检查过的非网络商店扩展程序不支持跨计算机同步,因此您必须将其放在Chrome网上应用店中进行测试。
您还必须确保在chrome://settings/syncSetup
下选中扩展程序。
答案 1 :(得分:0)
似乎Google Storage API存在一些限制,即每分钟同步的数量以及要同步的项目的权重。我发现了这个:http://www.developer.com/lang/synchronized-storage-between-multiple-computers-with-chrome-sync.html
我希望它会有所帮助;)