我想向我的反应应用程序添加推送通知。这需要服务人员,但我没有运气让他们工作。我已经运行npx create-react-app test并修改了 App.js(第 5 行,navigator.serviceWorker...是唯一的更改):
import React from 'react';
import logo from './logo.svg';
import './App.css';
navigator.serviceWorker.register("/service_worker_test.js");
function App() {
return (
<div className="App">
<header className="App-header">
<img src={logo} className="App-logo" alt="logo" />
<p>
Edit <code>src/App.js</code> and save to reload.
</p>
<a
className="App-link"
href="https://reactjs.org"
target="_blank"
rel="noopener noreferrer"
>
Learn React
</a>
</header>
</div>
);
}
export default App;
并将 service_worker_test.js 添加到 public 文件夹中:
self.addEventListener("activate", event => {
console.log("[Service Worker]", "activated");
});
当我使用它运行它时npm start,它会在浏览器和日志中加载[Service Worker] activated。但是在 chrome 开发工具中,它显示 service worker<location> - deleted并且状态是redundant.
在相同的环境中,使用服务人员和推送通知创建一个非 React 应用程序对我来说非常好。
为什么要这样做?谢谢!