chrome.storage.sync不会跨浏览器和设备同步

时间:2013-08-01 06:30:52

标签: google-chrome google-chrome-extension

我在扩展程序中使用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不能跨浏览器和设备同步的原因是什么?

2 个答案:

答案 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

我希望它会有所帮助;)