Я занимаюсь исследованием того, как использовать ((push-уведомления google)) с PHP, но там не так много рабочих примеров / документации ...
Я пытаюсь заставить это работать во внутренней сети, которая не открыта извне, через HTTP.
Мне удалось заставить это работать через HTTPS из нашего внешнего домена, но внутренняя попытка сообщает мне в консоли Chrome, что "the API may no longer be used from insecure origins", который, как я обнаружил, означает, что для него требуется HTTPS.
Кто-нибудь знает о возможном обходном пути для этого: подделать HTTPS или разрешить ему продолжать работу по HTTP? Я понимаю, что Google ввел это в качестве превентивной меры для людей со злым умыслом, но здесь дело обстоит не так, поскольку это будет для частного использования.
Мой HTML - это просто кнопка с событием onclick = "notifyMe()".
Скрипт для запроса разрешения и функция для уведомления:
<script>
// request permission on page load
document.addEventListener('DOMContentLoaded', function () {
if (!Notification) {
alert('Desktop notifications not available in your browser. Try Chromium.');
return;
}
if (Notification.permission !== "granted")
Notification.requestPermission();
});
function notifyMe() {
if (Notification.permission !== "granted")
Notification.requestPermission();
else {
var notification = new Notification('Notification title', {
icon: 'http://cdn.sstatic.net/stackexchange/img/logos/so/so-icon.png',
body: "Hey there! You've been notified!",
});
notification.onclick = function () {
window.open("http://example.com");
};
}
}
</script>
JS-файл с параметрами уведомлений и разрешениями:
'use strict';
var button = document.querySelector('button');
var input = document.querySelector('input');
var notify = function() {
var options = {
body: input.value,
icon: 'icon.png',
tag: 'foo',
type: 'basic'
};
var n = new Notification('Greetings!', options);
n.onclick = function() {
console.info('Clicked.');
};
n.onclose = function() {
console.info('Closed.');
};
n.onshow = function() {
console.info('Shown.');
};
};
button.onclick = function() {
if (!('Notification' in window)) {
alert('This browser does not support desktop notification');
} else if (Notification.permission === 'granted') {
notify();
} else if (Notification.permission !== 'denied') {
Notification.requestPermission(function(permission) {
if (!('permission' in Notification)) {
Notification.permission = permission;
}
if (permission === 'granted') {
notify();
}
});
}
};



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


После обширного исследования и тестирования я обнаружил, что невозможно использовать уведомления Google Chrome без HTTPS-соединения, даже если оно находится во внутренней сети.
Я выбрал установку сертификата SSL, и это решило мою проблему.