概要
このガイドでは、ReactJSまたはNextJSアプリケーションにOneSignalプッシュ通知を統合する方法を説明します。インストールから構成、サービスワーカー管理までのすべてをカバーしています。要件
- 構成されたOneSignalアプリとプラットフォーム。開始するには、Webプッシュセットアップを参照してください。
インストール
お好みのパッケージマネージャーを選択してください:初期化
OneSignalサービスをインポートし、ルートコンポーネントで初期化します。YOUR_APP_IDをキーとIDにあるOneSignalアプリIDに置き換えてください。
initオプションのカスタマイズ
追加のinitパラメータを使用して初期化をカスタマイズできます。
サービスワーカーの設定
まだ行っていない場合は、OneSignalサービスワーカーファイルをダウンロードして、サイトに追加する必要があります。OneSignalSDKWorker.jsファイルは公開アクセス可能である必要があります。publicディレクトリ、トップレベルルート、またはサブディレクトリに配置できます。ただし、ファイルをサブディレクトリに配置する場合、またはサイトに別のサービスワーカーがある場合は、パスを指定してください。詳細については、OneSignalサービスワーカーを参照してください。
| オプション | 説明 |
|---|---|
serviceWorkerParam | OneSignalワーカーによって制御されるスコープ。推奨: カスタムサブパスを使用します(例:"/onesignal/")。 |
serviceWorkerPath | ホストされているOneSignalサービスワーカーファイルへのパス(例:"onesignal/OneSignalSDKWorker.js")。公開アクセス可能である必要があります。 |
完全な動作例については、こちらを参照してください:React + OneSignalの例
ワーカーのホスティング
- パブリックルート(デフォルト):
/OneSignalSDKWorker.js - カスタムフォルダー(推奨):例:前のステップで設定した
/onesignal/OneSignalSDKWorker.js。
サービスワーカーのホスティングを確認する
ブラウザでパスにアクセスして、アクセス可能であることを確認します。 ルートを使用した場合:重要な注意事項
- 開発環境での重複初期化を避ける
- 開発環境でテストする場合、OneSignal SDKが2回初期化され、コンソールエラーが発生する場合があります。
- これは、
<React.StrictMode>が開発中にエフェクトを2回実行するために発生します。これを解決するには、開発中にルートコンポーネントから<React.StrictMode>を削除してください。
测试 OneSignal SDK 集成
本指南帮助您验证 OneSignal SDK 集成是否正常工作,通过测试推送通知和订阅注册。检查网页推送订阅
在测试设备上启动您的网站。
- 测试时使用 Chrome、Firefox、Edge 或 Safari。
- 请勿使用无痕或隐私浏览模式。 用户无法在这些模式下订阅推送通知。
- 提示应根据您的权限提示配置出现。
- 在原生提示上点击允许以订阅推送通知。

检查您的 OneSignal 控制台
设置测试订阅
测试订阅有助于在发送消息前测试推送通知。通过 API 发送测试推送
获取您的应用 API 密钥和应用 ID。
在您的 OneSignal 控制台中,前往设置 > 密钥和 ID。
检查确认投递。
在您的控制台中,前往投递 > 已发送消息,然后点击消息查看统计数据。您应该看到已确认统计数据,表示设备收到了推送。
Safari 不支持确认投递。
推送通知消息报告
查看推送通知的投递、点击和转化统计数据。
您已成功通过 API 向细分发送了通知。
support@onesignal.com 并提供以下信息:
- API 请求和响应(复制粘贴到
.txt文件中) - 您的订阅 ID
- 包含 OneSignal 代码的网站 URL
用户识别
上一节介绍了如何创建网页推送订阅。本节将扩展到使用 OneSignal SDK 识别跨所有订阅(包括推送、电子邮件和短信)的用户。涵盖外部 ID、标签、多渠道订阅、隐私和事件追踪,帮助您统一并跨平台互动用户。分配外部 ID
使用外部 ID 通过您后端的用户标识符在设备、电子邮件地址和电话号码中一致地识别用户。这确保您的消息在渠道和第三方系统中保持统一(对集成尤其重要)。 使用 SDK 的login 方法在您的应用每次识别用户时设置外部 ID。
OneSignal 为订阅(订阅 ID)和用户(OneSignal ID)生成唯一的只读 ID。当用户在不同设备上下载您的应用、订阅您的网站和/或在应用外提供电子邮件地址和电话号码时,将创建新的订阅。强烈建议通过 SDK 设置外部 ID,以在用户的所有订阅中识别用户,无论订阅是如何创建的。
添加数据标签
标签是字符串数据的键值对,您可以使用它们存储用户属性(如username、role 或偏好设置)和事件(如 purchase_date、game_level 或用户交互)。标签为高级消息个性化和细分提供支持,允许更高级的使用场景。
当应用中发生事件时,使用 SDK 的addTag 和 addTags 方法设置标签。
在这个例子中,用户达到了 6 级,可通过名为 current_level 的标签识别,值设置为 6。



添加电子邮件和/或短信订阅
OneSignal SDK 在用户选择加入时自动创建网页推送订阅。您也可以通过创建相应的订阅,通过电子邮件和短信渠道联系用户。- 使用
addEmail方法创建电子邮件订阅。 - 使用
addSms方法创建短信订阅。

多渠道沟通的最佳实践
- 在添加电子邮件或短信订阅之前获得明确同意。
- 向用户解释每个沟通渠道的好处。
- 提供渠道偏好设置,以便用户可以选择他们喜欢的渠道。
隐私和用户同意
要控制 OneSignal 何时收集用户数据,请使用 SDK 的同意门控方法:setConsentRequired(true):在给予同意之前阻止数据收集。setConsentGiven(true):一旦获得同意就允许数据收集。
监听推送、用户和应用内事件
使用 SDK 监听器对用户操作和状态变化做出反应。 SDK 为您提供了多个事件监听器可以钩入。查看我们的SDK 参考指南了解更多详情。推送通知事件
用户状态变化
- 用户状态变化事件监听器:检测外部 ID 何时被设置。
- 权限观察器:追踪用户与原生推送权限提示的特定交互。
- 推送订阅变化观察器:追踪推送订阅状态何时变化。
高级设置和功能
探索更多功能以增强您的集成:迁移到 OneSignal
从其他推送服务迁移到 OneSignal。
集成
将 OneSignal 与第三方工具和平台连接。
操作按钮
为推送通知添加互动按钮。
多语言消息
以用户首选语言发送本地化消息。
身份验证
使用服务器端身份验证保护您的 SDK 集成。
自定义结果
追踪与消息关联的自定义转化事件。
Web SDK 设置和参考
恭喜!您已成功完成 Web SDK 设置指南。
需要帮助?与我们的支持团队聊天或发送邮件至
support@onesignal.com请包含以下信息:- 您遇到的问题详情以及复现步骤(如有)
- 您的 OneSignal 应用 ID
- 外部 ID 或订阅 ID(如适用)
- 您在 OneSignal 控制台中测试的消息 URL(如适用)
- 任何相关的日志或错误信息



