setUninstallURL - 在Safari和Firefox中?

时间:2016-01-04 14:30:53

标签: javascript google-chrome-extension firefox-addon safari-extension

我们为Chrome,Firefox和Safari创建了扩展程序。我们想在卸载扩展程序时打开一个新选项卡。我找到了Chrome的这个代码,但它可以在Safari和Firefox中实现吗?

switch (platform) {
    case 'chrome':
        try {
            chrome.runtime.setUninstallURL(uninstall_url);
        } catch(e) {
            console.error(e);
        }
        break;
}

2 个答案:

答案 0 :(得分:2)

代替manifest.json Safari扩展程序使用Info.plistuninstall通常使用ExtensionBuilder生成。正如您从提供的屏幕截图中看到的那样,没有' uninstallURL'是可用的。我建议在全局页面中测试beforeUnload listener,但这可能也会在更新,浏览器关闭等其他事件中触发。

对于Firefox,这完全取决于您的加载项所基于的实际API。如果您使用Addon SDK或创建legacy XUL overlay extension,可能会运气不好。但是,Restartless bootstrapped extensions使用的是低级API,bootstrap.js中的function uninstall(data, reason) { if (reason === ADDON_UNINSTALL) { let win = Services.wm.getMostRecentWindow('navigator:browser'); win.gBrowser.selectedTab = win.gBrowser.addTab(url); } } 函数会收到一个原因参数:

states

好消息是新的WebExtensions API即将推出Firefox。它与Chrome API基本相同。请参阅relevant bug

答案 1 :(得分:2)

从addon sdk你可以使用这个https://developer.mozilla.org/en-US/Add-ons/SDK/Tutorials/Listening_for_load_and_unload

这将向您展示如何监听加载和卸载,并从此处检测加载/卸载解决方案的原因 - https://stackoverflow.com/a/31497334/1828637