在safari中获取扩展卸载事件

时间:2012-05-30 13:05:56

标签: events uninstall safari-extension browser-extension

Safari浏览器扩展程序是否有办法检测自己的卸载?

我想向Google Analytics发送一个事件,以跟踪我的扩展程序的卸载率。

2 个答案:

答案 0 :(得分:3)

在开发论坛上爬行之后,我发现Safari显然没有这样的事件(不像Chrome),或者如果有的话,它们没有文档记录(因此不打算使用)。我认为你最好的赌注是:

a)通过Apple's bug-reporting and feature-requesting site

申请此功能

b)设置一个外部服务,可以监控〜/ Library / Safari / Extensions或Extensions.plist文件进行删除(考虑到安全风险,这可能非常困难)

c)通过每天或某个其他时间间隔对外部服务进行一次ping操作来跟踪活动用户群。然后可以通过活动下降来估计删除/不活动率。

答案 1 :(得分:0)

您可以在全局文件脚本中注册window.onunload事件,以检测何时卸载扩展。最好使用addEventListener()和'卸载'因为safari可能正在使用该事件来清除扩展存储。还要确保在扩展更新或重新加载时检测事件是否正在触发,因为在这些情况下也会卸载全局页面。

window.addEventListener("unload", function() {
  //handle uninstall event
});