2016-11-29 9 views
1

Что такое код для определения любой надстройки (браузер Firefox) с надстройкой SDK?Как узнать установку другого надстройки в Firefox Add-on SDK

Я знаю, что это должно быть написано с использованием методов AddonManager.addInstallListener() и onNewInstall(). Я не могу их комбинировать и написать код. Пожалуйста, помогите мне с кодом.

+0

Я предположил, что вы действительно спрашиваете о том, как слушать установку надстроек. Если ваш вопрос действительно заключался в том, как прослушивать * прогресс * надстроек, для чего используется 'addInstallListener()', тогда, пожалуйста, [изменить] ваш вопрос, чтобы явно указать, что вы хотите прослушать процесс установки * *. – Makyen

+0

Возможно также, что вы хотите спросить, как установить, что установка - это фактически установка * нового * надстройки (то есть не обновление для надстройки, которое уже установлено). Если это так, вам нужно задать [новый/дополнительный вопрос] (http://stackoverflow.com/questions/ask), который конкретно указан. Это не то, что предоставляет onNewInstall() '(по крайней мере, на основе моего понимания). 'onNewInstall()' запускается при создании нового 'AddonInstall'. Для дополнительных обновлений создается «AddonInstall». Таким образом, 'onNewInstall()' не указывает, что надстройка * new * устанавливается. – Makyen

+0

Мое намерение состояло в том, чтобы знать как новые, так и новые обновления дополнений. –

ответ

0

Если вы хотите узнать подробный прогресс надстройки (не удаляя), вы можете использовать слушатели, которые вы добавляете с помощью AddonManager.addInstallListener(). Тем не менее, за то, что вы просили, получать события, когда установлен и-он установлен (т. Е. Не отслеживать ход установки, как раз это произошло), вы можете использовать и событие onInstalled.

This other answer of mine содержит полное расширение SDK Add-on, которое показывает различные события, доступные через метод AddonManager'saddAddonListener(). Он также показывает порядок запуска событий для уже установленного надстройки, а также того, который устанавливается и удаляется (показывает как то, что вы получаете для своей собственной установки/удаления, так и при установке или удалении надстройки не ваше собственное дополнение).

Редактирование этого кода вплоть до того, что необходимо для того, что вы попросили, приводит к следующему коду (Примечание: Я вручную редактировал код здесь, но не тестировал его (т. Е. Могут быть ошибки). Код в ответе Я связан выше, был полностью протестирован):

const { AddonManager } = require("resource://gre/modules/AddonManager.jsm"); 

var addonListener = { 
    onInstalled: function(addon){ 
     console.log('AddonManager Event: Installed addon ID: ' + addon.id 
        + ' ::addon object:', addon); 
    } 
} 

exports.onUnload = function (reason) { 
    //Your add-on listeners are NOT automatically removed when 
    // your add-on is disabled/uninstalled. 
    //You MUST remove them in exports.onUnload if the reason is 
    // not 'shutdown'. If you don't, errors will be shown in the 
    // console for all events for which you registered a listener. 
    if(reason !== 'shutdown') { 
     uninstallAddonListener(); 
    } 
}; 

function installAddonListener(){ 
    //Using an AddonManager listener is not effective to listen for your own add-on's 
    // install event. The event happens prior to you adding the listener. 
    //console.log('In installAddonListener: Adding add-on listener'); 
    AddonManager.addAddonListener(addonListener); 
} 

function uninstallAddonListener(){ 
    //console.log('In removeAddonListener: Removing add-on listener'); 
    AddonManager.removeAddonListener(addonListener); 
} 

installAddonListener(); 
+0

Спасибо за ответ. Я действительно хочу знать, как писать слушатели для установки событий и обновления событий. Я получил от вас ответ и отредактировал его согласно моему требованию. –

+0

@SeelamVenkatanagasiva, я рад обновить его, чтобы быть тем, что вы хотите, но я не уверен, что * точно *, что вы желаете. Есть несколько событий, которые вы можете прослушать. Все они должны запускать как установки * новых * надстроек, так и установки * обновлений * в существующие надстройки. 'addAddonListener()' можно использовать для добавления слушателей, которые запускают 'onInstalling' и' onInstalled' (и другие изменения состояния дополнения). 'addInstallListener()' может использоваться для получения нескольких событий во время процесса установки, предоставляя более подробную информацию о ходе установки, чего обычно не требуется. – Makyen

 Смежные вопросы

  • Нет связанных вопросов^_^