我目前正在将Chrome扩展转换为火狐插件,希望能够复制chrome.storage.sync功能。
但是,我无法找到使用简单存储存储的火狐外接程序存储的数据是否会在插件的用户被登录到火狐同步时自动同步。
考虑到通过后一种方法存储的所有数据都可以在用户配置文件中找到,我猜想它会.只要加载项在https://addons.mozilla.org上可用?
如能提供有关这一专题的任何资料,将不胜感激。
发布于 2014-04-28 13:14:17
simple-storage不是同步的。但是你可以用很少的努力就能同步它。
它存储storage对象的诀窍是,它从定义上是可序列化的,作为字符串首选项并告诉同步服务同步它。
让我们将该首选项命名为syncstorage并将其标记为可同步的。
var self = require("sdk/self");
var prefs = require("sdk/preferences/service");
prefs.set("services.sync.prefs.sync.extensions." + self.id + ".syncstorage", true);当将一些东西存储到simple-storage时,反映了对syncstorage的更改。
var sp = require("sdk/simple-prefs");
var ss = require("sdk/simple-storage");
sp.prefs["syncstorage"] = JSON.stringify(ss.storage);对于相反的效果,请观察syncstorage的变化
sp.on("syncstorage", function(prefname){
ss.storage = JSON.parse(sp.prefs["syncstorage"]);
})最后但并非最不重要的一点是,只有在用户的明确同意下才能同步,这是很好的,也许也是强制性的。
https://stackoverflow.com/questions/23318396
复制相似问题