网页推送要求
您的网站必须满足以下所有条件才能使网页推送正常工作: 所需的浏览器 API 安全性和连接- ✅ 仅限 HTTPS(具有有效的 SSL 证书)
- ✅ 已安装 OneSignal 的 service worker
- ✅ 浏览器必须能够访问:
- 浏览器推送服务器(例如 FCM、Mozilla)
api.onesignal.com
- ✅ 用户已授予通知权限
- ❌ 不在隐身/私人/访客模式下
- ❌ 网站数据未被清除(删除订阅)
清除浏览器数据(cookie、网站存储)会自动取消用户的推送通知订阅。
iOS/iPadOS 要求
要在 iOS 或 iPadOS 上接收推送:- iOS 16.4+ 或 iPadOS 16.4+
- 网站必须添加到主屏幕并从那里打开
- 具有必需字段的有效
manifest.json
文件 - 用户必须在作为网页应用打开后接受通知权限
iOS 网页推送设置
遵循 Apple 特定步骤在运行 iOS 16.4+ 的 iPhone 和 iPad 上启用网页推送。
浏览器和平台支持
按操作系统分类的浏览器兼容性
浏览器 | Windows PC | macOS | Android | iOS (iPhone, iPad) |
---|---|---|---|---|
Chrome 50+ | 支持 | 支持 | 支持 | 支持 ¹ |
Firefox 47+ | 支持 | 支持 | 支持 | 支持 ¹ |
Safari 10+ | 不支持 | 支持 | 不支持 | 支持 ¹ |
Microsoft Edge 18+ ² | 支持 | 支持 | 支持 | 支持 ¹ |
Opera ² | 支持 | 支持 | 支持 | 支持 ¹ |
Samsung Internet ² | 不支持 | 不支持 | 支持 | 支持 ¹ |
Yandex ² | 支持 | 支持 | 支持 | 支持 ¹ |
UC Browser ² | 支持 | 不支持 | 支持 | 支持 ¹ |
Internet Explorer ³ | 不支持 | 不支持 | 不支持 | 不支持 |
DuckDuckGo | 不支持 | 不支持 | 不支持 | 不支持 |
- ¹ iOS 需要安装网页应用(请参阅上面的 iOS 网页推送设置 要求)
- ² 基于 Chromium 的浏览器在 OneSignal 分析中显示为 “Chrome”
- ³ Internet Explorer 已弃用,不再接收更新
隐身模式、私人浏览模式和访客浏览器模式在任何平台上都不支持网页推送。
域名更改和迁移
了解浏览器源策略
出于安全原因,浏览器将网页推送订阅绑定到特定的源(域名/网站 URL)。您不能在不同源之间转移订阅者 - 这是浏览器的限制,而不是 OneSignal 的限制。 不同源包括:- HTTP vs HTTPS(例如
http://mysite.com
→https://mysite.com
) - www vs 非-www(例如
www.mysite.com
vsmysite.com
) - 不同域名/子域名(例如
domain1.com
vsdomain2.com
或sub1.domain.com
vssub2.domain.com
)
迁移选项
在更改您网站源时,请选择以下方法之一:- 新 OneSignal 应用(推荐)
- 更新应用并删除旧订阅者
最适合:大多数域名更改,特别是当您希望进行干净迁移时
- 为您的新域名创建新的 OneSignal 应用
- 双发送策略:继续从旧应用发送,但将“启动 URL”设置为您的新域名
- 渐进过渡:
- 高频率发送者(每日 1+ 次通知):2 周过渡期
- 中频率发送者(每周 2+ 次通知):2 个月过渡期
- 迁移通知:在过渡开始和结束时发送 1-2 条消息,如“我们搬家了!访问我们的新网站以获取更新”
从两个应用发送相同消息将为订阅了两个应用的用户创建重复通知。
HTTP 到 HTTPS 的升级
从 HTTP 升级到 HTTPS 会创建一个新的源。请遵循上述域名迁移步骤,因为浏览器将 HTTPS 网站视为与其 HTTP 版本完全分离的网站。多个网站和子域名
单个应用的限制
由于浏览器的同源策略,您不能将一个 OneSignal 应用用于多个源,如:https://mysite.com
和https://www.mysite.com
https://main.com
和https://shop.main.com
多个源的解决方案
- 单一源策略
- 分离应用
- 仅在您的主域名上订阅用户
- 将其他源的用户重定向到主域名进行订阅
- 订阅后重定向回原始页面
语言支持场景
- 相同源(推荐)
- 不同源
高级配置
同一网站上的多个 OneSignal 应用
- 不推荐 - 会导致订阅冲突。
- 发生的情况:OneSignal 会自动将用户重新订阅到最近访问的应用 ID,导致订阅者在应用之间跳转并创建许多未订阅的设备。
- 更好的方法:使用数据标签在单个应用内对用户进行分组。
子文件夹网站
网页推送在源级别上运作。对于子文件夹中的网站(例如https://example.com/blog
),请使用主源 (https://example.com
) 进行设置。
自行托管 SDK 文件
强烈不推荐。浏览器推送规范经常变化,OneSignal 会立即更新文件以保持兼容性。请使用您的网页推送设置中的 OneSignal CDN URL。自定义初始化代码
自定义init
代码仅适用于自定义代码设置。
典型设置或网站构建器用户:自定义初始化代码将被 OneSignal SDK 忽略。如果您需要延迟初始化,请使用隐私方法。
开发和测试
本地环境测试
有关完整的本地测试设置,请参阅 Web SDK 设置 > 本地测试。Service worker 集成
OneSignal 可以与现有的 service workers 和 PWA 并存工作。请参阅集成多个 Service Workers获取实施详情。推送垃圾邮件
推送通知不是为用于广告、垃圾邮件或欺骗性活动而设计的。 如果您的应用被检测为发送垃圾通知,浏览器可能会向您的用户发送“垃圾邮件警告”通知。 避免发送以下通知:- 与用户不相关的内容
- 使用“广告”等字眼或链接到与应用无关的页面
- 不来自可信来源(例如您未关联的品牌)
更多信息请参阅在 Chrome 中使用机器学习对抗不需要的通知。
- 审查您的通知内容并删除任何可能被认为是垃圾邮件的内容。这包括:
- 标题或正文中的“广告”或“广告”字样
- 链接到与应用无关的页面
- 链接到不来自可信来源的页面(例如您未关联的品牌)
- 继续发送并监控进一步的报告。
故障排除
更新部署时机
- Service Worker 文件:24 小时缓存
- Web SDK:3 天缓存
macOS Chrome 通知问题
对于 macOS Chrome 用户,请确保为两者都启用了通知:- Google Chrome 应用(Apple 菜单 > 设置 > 通知)
- Google Chrome Helper 应用
设置后的下一步
- 在您支持的浏览器和设备上进行彻底测试
- 为权限请求实施适当的错误处理
- 设置分析来监控订阅率
- 制定您的通知策略以避免用户疲劳
- 考虑对权限请求时机和消息进行 A/B 测试
常见迁移陷阱
- Browser data clearing unsubscribes users automatically
- Duplicate notifications during dual-app transitions
- iOS 需要安装 Web 应用才能使用推送功能
- 私人/隐身模式从不支持推送通知
- Service workers 必须可在您网站的根目录或配置的子目录中访问