Firefox SDK简单存储和Firefox同步

flo*_*flo 4 firefox-addon firefox-addon-sdk

我目前正在将Chrome扩展程序转换为Firefox附加组件,并希望复制chrome.storage.sync功能.

但是,无论何时加载项的用户登录到Firefox Sync,我都无法查找使用简单存储的Firefox加载项存储的数据是否会自动同步.

鉴于通过后一种方法存储的所有数据都可以在用户配置文件中找到,我认为只要加法可以在https://addons.mozilla.org上找到它?

任何有关该主题的信息将不胜感激.

paa*_*paa 10

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);
Run Code Online (Sandbox Code Playgroud)

存储某些内容以simple-storage反映更改时syncstorage.

var sp = require("sdk/simple-prefs");
var ss = require("sdk/simple-storage");
sp.prefs["syncstorage"] = JSON.stringify(ss.storage);
Run Code Online (Sandbox Code Playgroud)

对于相反的效果观察syncstorage变化

sp.on("syncstorage", function(prefname){
  ss.storage = JSON.parse(sp.prefs["syncstorage"]);
})
Run Code Online (Sandbox Code Playgroud)

最后但并非最不重要的一点是,只有在用户明确同意的情况下才能进行同步.