我刚刚用SDK创建了一个简单的插件。我安装了它,图标显示,一切都工作,没有重启firefox。然后我使用firefox的附加组件管理器删除了加载项。 之后我关闭并重新打开firefox并再次安装了附加组件,Manager显示安装成功。没有错误消息。但是图标没有显示,也没有任何效果。
firefox控制台和sdk控制台显示没有错误。 我的附加组件在sdk / simple-storage中存储了一个布尔值。 然后我重置了firefox并再次安装它,一切正常。
你知道吗,是什么导致了这个问题以及如何在不重置firefox的情况下解决它?
答案 0 :(得分:2)
根据我的经验,重新安装具有相同版本号的加载项被视为downgrade
。因此,将version number保存在简单存储中
const self = require('sdk/self');
const {storage} = require('sdk/simple-storage');
if (storage && storage.version===self.version && self.loadReason==='downgrade')
storage = {};
注意事项:
downgrade
,而是enable
。答案 1 :(得分:1)
正如我所料,它是sdk / simple-storage中的bug。删除加载项后,不会删除简单存储文件。重新安装相同的加载项时,这会导致问题。当我删除firefox配置文件文件夹中的“jetpack”文件夹时,重新安装工作正常。 所以我的解决方案是:不要使用简单存储。 当您知道另一种解决方法时,请告诉我。