К сожалению, по состоянию на 18 марта 2016 г. кнопки не реализованы для уведомлений WebExtension.
В документации NotificationOptions на MDN указано [акцент/ мое форматирование]:
Первые четыре свойства — type
, iconUrl
, title
, message
— являются обязательными в notifications.create() и необязательно в notifications.update(). В настоящее время Firefox поддерживает только эти четыре свойства.
и в разделе Совместимость браузера:
Firefox поддерживает только: type
, iconUrl
, title
, message
.
Важными частями этого («Firefox в настоящее время поддерживает только эти четыре свойства», а Firefox поддерживает только: type
, iconUrl
, title
, message
.) были добавлено в документацию 07 марта 2016 г.. Таким образом, если бы вы посмотрели документацию до этой даты, не было бы указаний на то, что buttons
еще не реализовано.
Кроме того, исходный код имеет комментарий:
// ИСПРАВЛЕНИЕ: многие параметры по-прежнему не поддерживаются, особенно
// кнопки.
Вы также можете найти исходный код, который в настоящее время используется для этого в вашем браузере по адресу: chrome://extensions/content/ext-notifications.js
Решение: реализовать buttons
самостоятельно:
В WebExtensions:
может реализовать кнопки самостоятельно из WebExtensions. Однако я недостаточно знаком с WebExtensions, чтобы сказать, возможно это или нет. Если это так, вы, вероятно, захотите взглянуть на исходный код, реализующий уведомления и кнопки уведомлений для других типов надстроек Firefox.
В целом для Firefox:
Если бы мне это было нужно, я бы, вероятно, решил реализовать buttons
и любые другие параметры, которые мне нужны, для всего Firefox и отправить код на Mozilla для просмотра и включения в Firefox. Я знаю, это может звучать так, как будто это большое дело и заноза в тылу, но на самом деле это не должно быть так сложно.
Если вы хотите поработать над ним, никаких специальных настроек не требуется. Код JavaScript, реализующий уведомления для WebExtensions, представляет собой файл ext-notifications.js, который содержится в каталоге chrome\toolkit\content\extensions внутри omni. ja (просто файл .zip
с измененным расширением на .ja
), который находится в каталоге установки Firefox. Обратите внимание, что на самом деле в иерархии каталогов установки есть 3 разных файла omni.ja. Тот, который вам нужен, находится в корне иерархии установки, а не в подкаталогах browser или webapprt.
Работать над ним будет так же просто, как извлечь этот файл, изменить его, создать обновленный файл omni.ja и поместить обновленный файл omni.ja в каталог выпуска. Некоторое время я делал это регулярно при каждом выпуске Firefox, потому что мне нужен был более длинный список файлов MRU для закладок. В конце концов я сломался и просто сделал оверлейное расширение, Изменить длину списка последних папок в закладках, чтобы заменить файл, в который я вносил изменения. Если вы хотите, вы можете сделать то же самое, чтобы реализовать изменения, необходимые для поддержки кнопок. Это, конечно, приведет к тому, что ваше текущее расширение будет зависеть от другого установленного до тех пор, пока код не будет интегрирован в Firefox. Но это приведет к тому, что у вас будет функциональность, которую вы желаете сейчас для своей разработки, и функциональность попадет в Firefox, по крайней мере, несколько быстрее, чем ожидание, пока кто-то другой в Mozilla ее реализует. Подобное оверлейное расширение просто берет install.rdf< /a>, двухстрочный chrome.manifest и обновленный файл ext-notifications.js, который вы хотите переопределить/заменить поверх текущего.
person
Makyen♦
schedule
18.03.2016