当应用程序启动时,XUL应用程序中的扩展是否可以自动更新到更新的版本?我想弄清楚这一点。如果可能的话,我会非常感激,如果有人能指出我有关此的好文件,因为我在互联网上找不到关于这个主题的任何好文章。
答案 0 :(得分:1)
XULRunner具有与Firefox内置相同的扩展更新机制 - 它将在应用程序运行时每天查找一次扩展更新。如果它找到更新,那么它将立即更新无重启的扩展,下载其他扩展并在下一个应用程序启动时更新。您必须确保为您的应用程序定义了以下首选项(从Firefox首选项复制):
pref("extensions.update.autoUpdateDefault", true);
pref("extensions.update.enabled", true);
pref("extensions.update.interval", 86400);
pref("extensions.update.url", "...");
pref("extensions.update.background.url", "...");
棘手的部分是更新网址。当然,您可以使用与Firefox相同的URL:
https://versioncheck.addons.mozilla.org/update/VersionCheck.php?reqVersion=%REQ_VERSION%&id=%ITEM_ID%&version=%ITEM_VERSION%&maxAppVersion=%ITEM_MAXAPPVERSION%&status=%ITEM_STATUS%&appID=%APP_ID%&appVersion=%APP_VERSION%&appOS=%APP_OS%&appABI=%APP_ABI%&locale=%APP_LOCALE%¤tAppVersion=%CURRENT_APP_VERSION%&updateType=%UPDATE_TYPE%&compatMode=%COMPATIBILITY_MODE%
https://versioncheck-bg.addons.mozilla.org/update/VersionCheck.php?reqVersion=%REQ_VERSION%&id=%ITEM_ID%&version=%ITEM_VERSION%&maxAppVersion=%ITEM_MAXAPPVERSION%&status=%ITEM_STATUS%&appID=%APP_ID%&appVersion=%APP_VERSION%&appOS=%APP_OS%&appABI=%APP_ABI%&locale=%APP_LOCALE%¤tAppVersion=%CURRENT_APP_VERSION%&updateType=%UPDATE_TYPE%&compatMode=%COMPATIBILITY_MODE%
这适用于addons.mozilla.org上可用的扩展程序。但是,我怀疑您的应用程序的扩展程序将无法在那里使用。那你有两个选择。您可以在此处输入一些虚拟网址,例如data:text/xml,<nada/>
,以使加载项管理器保持安静,并确保所有扩展程序都有custom updateURL
。或者,您可以运行自己的更新服务器,为所有已知扩展(基本上是addons.mozilla.org正在执行的操作)生成update manifests。