javascript - 如何使用 Javascript 监听 onsignal 网络推送通知事件?
问题描述
我想在收到来自 OneSignal 的新 Web 推送通知时显示警报。我尝试创建事件侦听器,但未显示警报或日志。我不确定这里有什么问题。该应用程序能够获取通知并显示它。
我尝试遵循此文档 https://documentation.onesignal.com/docs/web-push-sdk#notification-display
应用程序:ReactJS
OneSignal:自定义站点设置
这是我的代码。
索引.html
<script src="https://cdn.onesignal.com/sdks/OneSignalSDK.js" async=""></script>
<script>
window.OneSignal = window.OneSignal || [];
</script>
index.js
import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';
import reportWebVitals from './reportWebVitals';
const OneSignal = window.OneSignal
OneSignal.push(function () {
OneSignal.init({
appId: 'app id'
})
})
ReactDOM.render(
<React.StrictMode>
<App />
</React.StrictMode>,
document.getElementById('root')
);
reportWebVitals();
应用程序.js
import './App.css';
function App() {
const OneSignal = window.OneSignal
const chkPer = () => {
OneSignal.push(["getNotificationPermission", function (permission) {
console.log("Site Notification Permission:", permission);
// (Output) Site Notification Permission: default
}]);
}
const regPush = () => {
OneSignal.push(function() {
OneSignal.showNativePrompt();
});
}
OneSignal.push(function() {
OneSignal.on('notificationDisplay', function(event) {
console.warn('OneSignal notification displayed:', event);
});
//This event can be listened to via the `on()` or `once()` listener
});
window.addEventListener('notificationDisplay', (event) => {
console.log(event);
alert('OS event')
});
return (
<div className="App">
<button onClick={chkPer}>Check Permission</button>
<button onClick={regPush}>register for Notification</button>
</div>
);
}
export default App;
解决方案
推荐阅读
- matlab - atan2 的结果不平滑
- ios - 子视图控制器大小问题
- clojure - Clojure 序列和集合
- python - conda 环境变量未在 Windows 中加载
- php - 图像不会保存到项目文件夹
- reactjs - 无法下载 npm 模块
- android - React Native Android 深度链接 url 未通过
- angular - PWA Angular 应用程序名称在部署后停留在旧名称上 - 如何强制更新?
- ruby-on-rails - Rails 是否从发布请求的参数键中删除问号?
- wordpress - 如何阻止 x-robots-tag 在我的整个网站上设置 noindex?