当前位置:首页 > JavaScript

js实现推送

2026-03-14 05:17:40JavaScript

实现 Web 推送通知的方法

使用 JavaScript 实现推送通知主要依赖浏览器的 Push APINotification API。以下是具体实现步骤:

注册 Service Worker

Service Worker 是推送通知的核心,用于在后台接收推送消息。

js实现推送

if ('serviceWorker' in navigator) {
  navigator.serviceWorker.register('/service-worker.js')
    .then(registration => {
      console.log('ServiceWorker 注册成功');
    });
}

请求用户授权

需要用户授权才能显示通知。

Notification.requestPermission().then(permission => {
  if (permission === 'granted') {
    console.log('用户已授权通知');
  }
});

订阅推送服务

通过 PushManager 订阅推送服务,获取推送订阅对象。

js实现推送

navigator.serviceWorker.ready.then(registration => {
  return registration.pushManager.subscribe({
    userVisibleOnly: true,
    applicationServerKey: '你的应用服务器公钥'
  });
}).then(subscription => {
  console.log('推送订阅成功:', subscription);
});

发送推送消息

服务器通过 Web Push 协议向推送服务发送消息,Service Worker 接收并显示通知。

self.addEventListener('push', event => {
  const payload = event.data.json();
  event.waitUntil(
    self.registration.showNotification(payload.title, {
      body: payload.body,
      icon: 'icon.png'
    })
  );
});

处理通知点击事件

用户可以点击通知触发特定动作。

self.addEventListener('notificationclick', event => {
  event.notification.close();
  event.waitUntil(
    clients.openWindow('https://example.com')
  );
});

注意事项

  • HTTPS 要求:推送通知仅在 HTTPS 或 localhost 环境下可用。
  • 浏览器兼容性:检查 Push API 和 Notification API 的浏览器支持情况。
  • 服务器配置:需配置应用服务器公钥(VAPID 密钥)以验证推送请求。

通过以上步骤,可以实现基本的 Web 推送通知功能。

标签: js
分享给朋友:

相关文章

js防抖和节流实现

js防抖和节流实现

防抖(Debounce)的实现 防抖的核心思想是在事件被触发后,延迟执行回调函数。如果在延迟时间内再次触发事件,则重新计时。适用于输入框搜索、窗口大小调整等场景。 function debounce…

js实现变形

js实现变形

使用 CSS 和 JavaScript 实现元素变形 在 JavaScript 中实现变形效果通常结合 CSS 的 transform 属性,通过动态修改该属性实现元素的旋转、缩放、倾斜或平移。 基…

js实现代码雨

js实现代码雨

实现代码雨效果 使用HTML5 Canvas和JavaScript可以轻松实现经典的代码雨效果。以下是完整的实现代码和说明: HTML结构 <!DOCTYPE html> <…

js实现菜单

js实现菜单

实现基本HTML结构 使用HTML创建菜单的基本框架,通常包含<ul>和<li>元素。示例结构如下: <ul id="menu"> <li><…

js实现定位

js实现定位

使用Geolocation API获取当前位置 在JavaScript中,可以通过浏览器内置的Geolocation API获取用户的地理位置信息。该API需要用户授权才能访问位置数据。 if (n…

js 实现图片轮播

js 实现图片轮播

基础实现方案 使用HTML、CSS和JavaScript创建一个简单的图片轮播。HTML部分定义轮播容器和图片,CSS负责样式布局,JavaScript处理轮播逻辑。 <div class="…