Notification.Icon загружает .png и URL в порядке, но не локальный файл

Я больше пытаюсь понять это, чем что-либо еще, я не уверен, есть ли реальное решение.

Я использую Notification API (https://developer.mozilla.org/en-US/docs/Web/API/notification) и, более конкретно, речь идет о свойстве icon в сочетании с Electron.

Я пытаюсь создать собственное всплывающее окно с уведомлением на Mac и Windows. Кажется, все довольно просто и работает, кроме части значка.

Это проблема, с которой я столкнулся (я проверил, что пути к файлам существуют):

вариант 1, icon.png (работает):

var myNotificiation = new Notification(
            title, {
                body: message,
                icon: jetpack.path(__dirname, 'assets', 'icon.png')
            });

вариант 2, URL (работает):

 var myNotificiation = new Notification(
            title, {
                body: message,
                icon: "https://encrypted-tbn2.gstatic.com/images?q=tbn:ANd9GcR1zOS6CtRHjyHhgclhEKRZ_ipCGU2VCthotUjPp7ErPvSnWb6zZ9fNlA"
            });

вариант 3, локальный html файл (не работает):

var myNotificiation = new Notification(
            title, {
                body: message,
                icon: jetpack.path(__dirname, 'services', 'icon.html')
            });

Для согласованности это содержимое страницы icon.html: https://imgur.com/9qkAHky

Вопрос:

Почему изображение локального файла jetpack.path(__dirname, 'services', 'icon.html') не заполняет часть значка уведомления, но изображение URL-адреса отображается в том же месте?

Любая помощь будет оценена по достоинству. Я надеюсь, что это просто что-то не так на моей HTML-странице, но я пока не нашел ничего неправильного.


person Chris Niemann    schedule 25.02.2016    source источник
comment
icon.html это не изображение, почему вы пытаетесь использовать его как значок?   -  person Vadim Macagon    schedule 25.02.2016
comment
Действительно, это не изображение, но URL-адрес тоже. Вот почему я так запутался ... Причина, по которой я хочу использовать HTML вместо изображения, заключается в том, что я могу создать собственный «значок» для каждого уведомления без необходимости создавать все значки заранее. В этом примере значок представляет собой кружок с буквой, но цвет фона круга меняется с каждым клиентом, а буква меняется с каждым пользователем...   -  person Chris Niemann    schedule 25.02.2016
comment
URL-адрес ссылается непосредственно на изображение, а не на html-документ, что соответствует описанию параметра значка: The icon read-only property of the Notification interface contains the URL of an icon.   -  person Vadim Macagon    schedule 25.02.2016
comment
Спасибо за разъяснения!   -  person Chris Niemann    schedule 26.02.2016


Ответы (2)


Спасибо Вадиму Макагону:

URL-адрес ссылается непосредственно на изображение, а не на html-документ, что согласуется с описанием параметра значка: Свойство icon только для чтения интерфейса уведомлений содержит URL-адрес значка.

person Chris Niemann    schedule 07.03.2016

Это сработало для меня (источник: https://github.com/electron/electron/issues/1025#issue-54722118)

new Notification({ 
  title: "Message", 
  body: msg,
  icon:'electronImages/hi.png'
}).show()

проверьте пример здесь

person Pandurang Parwatikar    schedule 04.06.2021