2014-02-27 97 views
0

我正在寫一個chrome擴展,我希望在多臺計算機之間同步一些數據。我的印象是,如果我使用同一個gmail帳戶登錄到兩個獨立的瀏覽器(一個在同一臺計算機上運行的虛擬機中),我應該可以使用chrome.storage.sync.set在一個瀏覽器上,然後使用chrome.storage.sync.get從另一箇中檢索相同的數據?chrome.storage.sync瀏覽器之間不同步

我可以使用來自同一瀏覽器的get方法檢索數據我運行set方法(甚至是從單獨的隱身窗口),但在另一個虛擬機上使用相同的get命令返回空對象。

兩個瀏​​覽器都在'高級同步設置'中設置了'同步所有'選項。 兩個瀏​​覽器都有相同的Chrome版本:33.0.1750.117米。

這裏是我的設置和獲取代碼:

chrome.storage.sync.set({'foo': 'bar'}, function() {}); 

chrome.storage.sync.get('foo', function(items) { 
    console.dir(items); 
}); 
+1

這兩個擴展名是否使用相同的擴展名? – abraham

+0

要在@ abraham的評論(這很可能是正確的答案)上構建一點,擴展ID將在您上傳到商店時永久分配。對於開發中的解壓縮擴展,該ID由幾個可能不太常見的系統變量合成,如解壓縮擴展的目錄位置。如果您想知道如何在開發過程中使ID穩定,請提出一個單獨的問題。 – sowbug

回答

0

由於@abraham和@sowbug都提到了,問題是,加載解壓的擴展程序時,他們會被分配不同的擴展名的ID。 我在這裏找到了解決方案:https://developer.chrome.com/extensions/packaging#upload 它涉及將擴展頁面中的擴展名打包到chrome中,然後加載生成的.crx文件。每次加載這個.crx文件時,它都會有相同的擴展名。

相關問題