Для моего проекта стажировки, над которым я работаю - веб-приложение на Java, мне нужно отправлять уведомления на не полностью HTTPS веб-сайт.OneSignal предлагает возможность сделать это.
Сначала, чтобы протестировать их службу, я жестко запрограммировал директиву JavaScript SDK клиента внутри некоторых тегов <script>
в моем jsp-файле, и он работал нормально.
<script src="https://cdn.onesignal.com/sdks/OneSignalSDK.js" async='async'></script>
<script>
var OneSignal = window.OneSignal || [];
OneSignal.push(["init", {
appId: "my-app-id",
autoRegister: false,
notifyButton: {
enable: true
}
}]);
</script>
Однако мне пришлось переместить мой javascript в файл js, так как правила разработки моей компании указывают, что javascript не должен быть в файле jsp.Поэтому я связал код с кнопкой, чтобы вручную активировать его, используя document.querySelector('.id-foo').addEventListener('click', initOneSignal)
.
. Затем файл javascript динамически загружается в нижний колонтитул моего jsp.
Вот мой файл js:
(function() {
document.querySelector('.js-initOneSignal').addEventListener('click', initOneSignal);
function initOneSignal() {
var OneSignal = window.OneSignal || [];
OneSignal.push(["init", {
appId: "my-app-id",
autoRegister: false,
notifyButton: {
enable: true
}
}]);
};
})();
Однако он больше не работает (на только Firefox , нет проблем в Chrome), так как я получаю это сообщение от OneSignalSDK.js, который пытается открыть iFrame для https://my -app-name.onesignal.com / webPushIframe , но не в состоянии и время ожидания.
SecurityError: Операция небезопасна
Видимо, этоэто ошибка https://github.com/OneSignal/OneSignal-Website-SDK/issues/95. Проблема помечена как закрытая, хотя я думаю, что она должна быть снова открыта, более новая версия Firefox могла бы что-то изменить.Вот ссылка на проблему my github: https://github.com/OneSignal/OneSignal-Website-SDK/issues/359
Кто-то сталкивался с проблемой и нашел обходной путь?
Заранее спасибо за любую помощь!
PS:Я использую Firefox 60
PPS: iFrame OneSignal пытается открыть:
<!DOCTYPE html>
<html>
<head>
<script src="https://cdn.onesignal.com/sdks/OneSignalSDK.js"></script>
<script>OneSignal._initHttp({
appId: "myappid",
subdomainName: "mysubdomainname",
origin: "http://my-website"
});</script>
<link rel="manifest" href="manifest_json">
</head>
<body>
</body>
</html>
РЕДАКТИРОВАТЬ:
Все еще нет ответа от OneSignal.Их ссылка «Поддержка» не работает.