如何同步 chrome 扩展选项

Posted

技术标签:

【中文标题】如何同步 chrome 扩展选项【英文标题】:How to sync chrome extension options 【发布时间】:2011-05-11 23:06:46 【问题描述】:

我制作了一个带有选项页面的 Chrome 扩展程序。数据保存在本地存储中并且可以正常工作。

Chrome 不会将本地存储同步到云端,只会同步扩展程序。这意味着任何用户数据都不会同步到同一 google 帐户的其他计算机。

我在http://developer.chrome.com/extensions/docs.html 找不到允许我同步用户选择的首选项的 API。

你有什么建议?

【问题讨论】:

什么不同步本地存储?您在选项页面和扩展程序中的其他页面之间同步时遇到问题吗?或者您是否正在寻找一种技术,可以在一台计算机上的扩展程序和同一用户在不同计算机上的同一扩展程序的选项之间同步选项? 后者。假设我有同一用户的计算机 A 和计算机 B。我在计算机 A 上安装扩展并设置选项页面。一切正常,即使在电脑重启后它也会记住这些选项。在电脑b上,它已经通过同步安装了自己,但它没有携带保存的选项!我该如何改变? 你在使用 Cookies API (code.google.com/chrome/extensions/cookies.html)吗? 没有。这些是否同步。此外,凭据由用户名和密码组成,所以我不想将其以明文形式存储在 cookie 中。 这篇文章的信息已过时。有关最新信息,请参阅Is LocalStorage synchronization for Chrome extensions already available?。 【参考方案1】:

在(希望不久的)将来,您会您现在可以在chrome.storage.sync 中存储内容,并且会自动同步。

除非您现在需要一些东西,否则请考虑将所有配置放在一个对象中,稍后您将能够同步它!

编辑:现在是available in stable Chrome!

【讨论】:

链接已损坏,正确链接为:developer.chrome.com/docs/extensions/reference/storage/#usage【参考方案2】:

你应该可以使用HTML5 WebDatabases,但你不能。请参阅下面的 cmets。

【讨论】:

为什么会同步,而不是 localStorage?这两件事都是 HTML5。 API 中是否有提及它们在扩展同步中支持网络数据库的参考? 老实说,我刚刚看到 chromium 项目的某个人建议这将是一个不错的选择:(groups.google.com/group/chromium-extensions/tree/browse_frm/…)。因为它在单独的线程上工作。 这个解决方案真的有效吗?在相关问题code.google.com/p/chromium/issues/detail?id=47327 中没有提及此 Stack Overflow 上有相关话题:***.com/questions/4877242/… 答案是“NO”! 太糟糕了,我不同意@Jannes(in ?id=4877242),关于并发问题,最后会有一个主表,允许同步,为此精确时间戳应该可以区分最后进入的记录。 IMO,是否同步数据库绝对应该是用户决定:(【参考方案3】:

Nathan Moos 告诉你真相 :) 但你不需要自己写,你可以使用来自Sylebot 扩展的 Ankit Ahuja 解决方案。您将需要文件js/sync.js。源代码很棒,而且效果很好!

【讨论】:

js/sync.js 的链接失效了,stylebot 是否放弃了这种同步方式?【参考方案4】:

您可以尝试使用 Google Docs 来做到这一点,就像 Chrome 使用书签一样。我不知道 api 能达到多远,但这似乎是一个相当基本的操作。

【讨论】:

【参考方案5】:

您可以将一些选项序列化为书签并告诉用户启用书签同步。然后,您可以从书签中读取数据或在书签周围构建一个伪“localStorage”对象。

【讨论】:

你在开玩笑吗?谁会为了扩展记住一些设置而保留一个书签? 疯狂,但这就是我看到它完成的方式。

以上是关于如何同步 chrome 扩展选项的主要内容,如果未能解决你的问题,请参考以下文章

chrome账号登录后无法同步书签等

是否有访问 Chrome 同步数据的 API? [关闭]

问题解决方案谷歌浏览器不能登录或同步的问题解决

Linux(内核剖析):28---内核同步之(临界区竞争条件同步锁常见的内核并发SMNP和UP配置选项锁的争用和扩展性(锁粒度))

如何使用变量的值作为键名在 chrome 扩展中使用 chrome.storage?

chrome的js脚本怎么备份或者同步账户啊?