如何在不同的计算机上同步Chrome扩展程序数据?

ser*_*erg 23 synchronization google-chrome google-chrome-extension

我有一个扩展,用户可以在其中维护链接列表.将这些数据在计算机之间同步(在工作和家中)会很好.有哪些可能的解决方案?

Chrome有扩展同步选项,但我不确定它是否同步数据(如果是,我会感到惊讶).即使它确实如此,也不是每个人都希望同步所有其他扩展.

我可以将我的链接存储在一个特殊的书签文件夹中,并使用内置的书签同步,但在这种情况下,所有书签也会同步(并非所有用户都希望我这么想).

我可以使用的任何外部网站?一些易于使用并链接到谷歌帐户?

(我不想为此建立自己的网站)

Moh*_*our 27

编辑:从Chrome 20及更高版本开始,您可以使用chrome.storage模块保存到云端.

chrome.experimental.storage.sync.set({'settingAlwaysOn': true}, function() {
  console.log('Saved option in the cloud');
});
Run Code Online (Sandbox Code Playgroud)

在Chrome 20之前

您是对的,Chrome Sync for extensions选项(在设置中)不会同步扩展数据.同步这些数据的唯一方法是通过第三方.

由于您排除了书签的使用,如果用户不希望书签同步,这是有意义的.

每次通过存储(Web SQL存储,localStorage,IndexDB)持久存储数据时,您都会获取该对象,并将其序列化为JSON(通过JSON.stringify),然后将其发送到某些在线服务(如Google Docs).

对于Web SQL Storage和IndexDB来说,这将非常棘手,您必须自己做导入器和导出器.对于localStorage,它非常简单,因为它是一个键/值对.

它需要一些工作才能将其链接到Google帐户(例如文档),您必须使用OAuth并执行管道连接以将您的扩展程序连接到服务.一旦你连接起来,维持状态并不困难.

祝好运 :)

  • 自Chrome 20以来,这个答案已不再正确 (2认同)
  • @AndreGoncalves谢谢,更新了答案以反映我们的新存储同步API. (2认同)

NVI*_*NVI 27

Chrome 20支持chrome.storage.sync API.它似乎完全符合您的要求.

  • 旧的正确答案已经过时,这应该是新的正确答案! (6认同)