我正在构建一个Chrome扩展程序,要求您在使用之前登录Chrome,发布后可以保存一些值(我将其存储在同步存储中)并且预期相同每当我使用相同的登录信息从其他计算机登录Chrome时获得同步。
我测试了扩展,并且信息正在我保存的机器上成功存储。但是相同的信息不会同步到另一台机器。为了说清楚,我还在其他机器的chrome中安装了扩展程序。
我在后台js中使用了以下代码进行同步 -
chrome.storage.onChanged.addListener(function(changes, areaname) {
if(areaname=="sync")
{alert('Storage Changed' + changes);}}
以便我收到一条警告,表明该事件已被解雇。
我没有在另一台机器上收到此警报;表明同步没有发生。
我查了Sync settings,它显示同步刚刚发生。但没有警觉。
是这样,我们可以在扩展的开发过程中测试同步吗?
我经历过Does-chrome-app-id-for-extensions-affect-sync-storage
App Id是否必须对它做任何事情?
更新 - 我找到了答案。让我详细说明我是如何做到的。 -
此页面developer.chrome.com/extensions/packaging说明了如何手动打包和扩展。请在继续之前完成。
第1步 - 我删除了我在两台计算机上安装的扩展程序。(我之前使用Load unpacked extension选项安装了它)
第2步 - 我按照上面的链接编写了一个包含.crx和.pem文件的手动包文件
第3步 - 当我使用相同的Gmail帐户登录这两台计算机时,我通过将文件拖放到以下来共享并安装此.crx文件浏览器。 (它要求确认并继续安装)
第4步 - 在两台计算机上执行了第3步之后,我现在在两个浏览器中都安装了扩展程序。
第5步 - 我在一个浏览器中使用我的扩展程序保存了值,瞧,过了一会儿,它出现在另一台机器上。
第6步 - 但重要的是,数据自动同步,没有我想要显示的提醒 -
if(areaname=="sync") {alert('Storage Changed' + changes);}}
所以我认为这个监听器代码在我的情况下并不重要。希望这有助于其他人寻找解决方案。