Допустим, у меня есть веб-сайт в одном домене: a.example.com
Я хочу проверить, предоставил ли текущий веб-сайт Клиент разрешения на уведомления в другом домене, скажем b.example.com
Я делал это до сих пор, используя Iframe
(межкадровый iframe) для конкретной страницы на b.example.com
, которая выполняет следующий запрос разрешений :
return navigator.permissions.query({ name: 'notifications' })
.then((result) => {
return result.state;
});
Приведенный выше код прекрасно работал в Iframe
до сих пор, и я не уверен, почему result.state
всегда возвращает "prompt"
, даже если Клиент уже предоставил разрешения.
Но, если вызов Notification.permission
показывает "granted"
.
Стоит упомянуть, если я позвоню navigator.permissions.query({name:'notifications'})
на b.example.com
(без iframe, в консоли браузера), он вернет "granted"
.
Что мне здесь не хватает?
[Я использовал Chrome версии 71.0.3578.98 для этого примера]
ОБНОВЛЕНИЕ 1
Похоже, navigator.permissions.query
возвращает значение из a.example.com
(домен верхнего уровня) вместо b.example.com
, но Notification.permission
возвращает значение b.example.com
??
Этоновое поведение API или я что-то упустил?