概要
このガイドでは、Huawei AppGalleryで配布されるIonic、Capacitor、またはCordovaアプリケーションにOneSignalプッシュ通知を統合する方法を説明します。 アプリがHuawei AppGalleryで配布されている場合にのみ、これらの手順に従ってください。要件
- Android Studio
- 「Huawei App Gallery」がインストールされたHuaweiデバイス
- 構成されたOneSignal AppとPlatform
OneSignalアプリとプラットフォームを設定
プッシュ通知の必須セットアップ OneSignalでプッシュ通知の送信を開始するには、まずサポートするすべてのプラットフォーム(Apple(APNs)、Google(FCM)、Huawei(HMS)、Amazon(ADM))でOneSignalアプリを設定する必要があります。OneSignalアプリを設定するためのステップバイステップの手順
OneSignalアプリを設定するためのステップバイステップの手順
アプリを作成または選択
- 既存のアプリにプラットフォームを追加するには、OneSignalダッシュボードでSettings > Push & In-Appに移動します。
- 新規に開始するには、New App/Websiteをクリックしてプロンプトに従います。

新しいアプリを作成する例
プラットフォームをセットアップして有効化
- アプリと組織の明確で認識可能な名前を選択します。
- 設定するプラットフォーム(iOS、Androidなど)を選択します。
- Next: Configure Your Platformをクリックします。

最初のOneSignalアプリ、組織、チャネルをセットアップする例
プラットフォーム認証情報を設定
- Android:Firebase認証情報をセットアップ
- iOS:p8トークン(推奨)またはp12証明書
- Amazon:APIキーを生成
- Huawei:OneSignalを承認
ターゲットSDKを選択

使用しているSDKを選択してドキュメントに移動
SDKをインストールしてApp IDを保存

App IDを保存して追加のチームメンバーを招待
セットアップ
1. OneSignal SDKをセットアップする
OneSignal Ionic/Capacitor/Cordova SDKセットアップ
2. Huawei構成
Huawei Push Kit Cordova Getting Startedガイドに従ってください。 Integrating the Pluginセットアップに従う際、プラグインをダウンロードした後、ダウンロードしたプラグインのplugin.xmlファイルを変更して、AndroidManifest.xmlからCordovaHMSMessageServiceを削除します。

追加の構成手順
Huawei位置情報サービス(オプション)
アプリのbuild.gradleの依存関係セクションにimplementation 'com.huawei.hms:location:<HUAWEI HMS VERSION #>を追加します。
まだ追加していない場合は、AndroidManifest.xmlに位置情報パーミッションも追加してください

他のHMSプッシュライブラリまたは独自のHmsMessageServiceクラスとの互換性
次の場合に必要です:
- OneSignalに加えて、アプリに別のHMSプッシュSDK/ライブラリがある
- 独自の
HmsMessageServiceがある
詳細...
詳細...
HmsMessageServiceから拡張するクラスを作成し、次のメソッドを追加します。HmsMessageServiceを拡張するクラスがある場合は、別のクラスを作成する代わりに、2つの新しいOneSignalHmsEventBridge行を追加してください。OneSignalHmsEventBridgeを介してonNewTokenとonMessageReceivedをOneSignalに転送するためです。以前にHmsMessageServiceを拡張するクラスがなかった場合は、<application>タグの下のAndroidManifest.xmlに追加してください。Huaweiトラブルシューティング
テスト中は、OneSignal setLogLevelメソッドをVERBOSEに設定したままにしてください。 ログをチェックして、スローされているエラーとHuawei Common Error Codesを確認してください。6003エラー
6003エラー
pushTokenを登録する際に6003エラーを回避するために、デバッグまたはリリースキーストア署名を作成する必要がある場合があります(正しいアプリビルドパス、debugまたはreleaseを選択)。“Configure a Signature”セクションを参照してくださいnotification_types: -25
notification_types: -25
"notification_types":-25は、OneSignalがHuaweiのHMSからプッシュトークンを取得するための応答を待機してタイムアウトしたことを意味します。これは、OneSignalの代わりに別のサードパーティHMSプッシュSDKまたは独自のHmsMessageServiceがこのイベントを取得していることが原因である可能性が最も高いです。これを確認し、該当する場合はイベントを転送する方法については、このステップを確認してください。notification_types: -28
notification_types: -28
build.gradleにcom.huawei.hms:pushを含めるだけで、この特定のエラーは発生しなくなります。ただし、積極的なProguardまたはR8設定がある場合、これが問題を引き起こす可能性があります。これが問題の根本原因であるかどうかを確認するために、minifyEnabledを一時的にオフにすることをお勧めします。また、他のHMSライブラリのメジャーリリースバージョンを混在させないでください。4または5のいずれかから始めてください。3から5の混在は、他のエラーを引き起こします。Huaweiプッシュトークンの取得エラー
Huaweiプッシュトークンの取得エラー
OneSignal SDK統合のテスト
このガイドでは、プッシュ通知、サブスクリプション登録、アプリ内メッセージをテストして、OneSignal SDK統合が正しく機能していることを確認する方法を説明します。モバイルサブスクリプションを確認
テストデバイスでアプリを起動します。
requestPermissionメソッドを追加した場合、ネイティブのプッシュ許可プロンプトが自動的に表示されます。
iOSとAndroidのプッシュ許可プロンプト
OneSignalダッシュボードを確認
- Audience > Subscriptionsに移動します。
- ステータスが「Never Subscribed」の新しいエントリが表示されるはずです。

「Never Subscribed」ステータスのサブスクリプションを表示するダッシュボード
アプリに戻り、プロンプトで「許可」をタップします。
OneSignalダッシュボードのSubscriptionsページを更新します。

「Subscribed」ステータスのサブスクリプションを表示するダッシュボード
テストサブスクリプションをセットアップ
テストサブスクリプションは、メッセージを送信する前にプッシュ通知をテストするのに役立ちます。Test Subscriptionsに追加します。

デバイスをTest Subscriptionsに追加
サブスクリプションに名前を付けます。

「Name your subscription」フィールドを表示するダッシュボード
テストユーザーセグメントを作成します。
セグメントに名前を付けます。
Test Usersという名前を付けます(この名前は後で使用されるため重要です)。Test Usersフィルターを追加し、Create Segmentをクリックします。

Test Usersフィルターを使用して「Test Users」セグメントを作成
API経由でテストプッシュを送信
App API KeyとApp IDを取得します。
提供されたコードを更新します。
YOUR_APP_API_KEYとYOUR_APP_IDを実際のキーに置き換えます。このコードは、先ほど作成したTest Usersセグメントを使用します。コードを実行します。
画像とConfirmed Deliveryを確認します。

iOSとAndroidで画像付きプッシュ通知
Confirmed Deliveryを確認します。

Confirmed Deliveryを示す配信統計

Audience Activityでのデバイスレベルでの Confirmed Delivery
- 画像が受信されない場合は、Notification Service Extensionが不足している可能性があります。
- Confirmed Deliveryがない場合は、こちらのトラブルシューティングガイドを確認してください。
- 問題が発生した場合は、APIリクエストとアプリ起動の最初から最後までのログを
.txtファイルにコピー&ペーストしてください。その後、両方をsupport@onesignal.comと共有してください。
アプリ内メッセージを送信
アプリ内メッセージを使用すると、ユーザーがアプリを使用している間にユーザーとコミュニケーションできます。デバイスでアプリを閉じるか、バックグラウンドにします。
アプリ内メッセージを作成します。
- OneSignalダッシュボードで、Messages > In-App > New In-Appに移動します。
- Welcomeメッセージを見つけて選択します。
- Audienceを、以前使用したTest Usersセグメントに設定します。

「Test Users」セグメントをアプリ内メッセージでターゲティング
必要に応じてメッセージコンテンツをカスタマイズします。

アプリ内Welcomeメッセージのカスタマイズ例
トリガーを「On app open」に設定します。
頻度をスケジュールします。

アプリ内メッセージのスケジュールオプション
メッセージをライブにします。
アプリを開いてメッセージを確認します。

デバイスに表示されたWelcomeアプリ内メッセージ
- 新しいセッションを開始します
- 再度開く前に、少なくとも30秒間アプリを閉じるかバックグラウンドにする必要があります。これにより、新しいセッションが開始されます。
- 詳細については、アプリ内メッセージの表示方法を参照してください。
- まだ
Test Usersセグメントに含まれていますか?- アプリを再インストールしたりデバイスを切り替えたりした場合は、デバイスをTest Subscriptionsに再度追加し、Test Usersセグメントの一部であることを確認してください。
- 問題が発生していますか?
- 上記の手順を再現しながらデバッグログの取得に従ってください。これにより、
support@onesignal.comと共有できる追加のログが生成され、何が起こっているかを調査するのに役立ちます。
- 上記の手順を再現しながらデバッグログの取得に従ってください。これにより、
- サブスクリプションの収集、テストサブスクリプションの設定、セグメントの作成。
- セグメントとCreate message APIを使用した画像付きプッシュとConfirmed Deliveryの送信。
- アプリ内メッセージの送信。
ユーザー識別
以前、モバイルサブスクリプションの作成方法を説明しました。次に、OneSignal SDKを使用して、すべてのサブスクリプション(プッシュ、メール、SMSを含む)にわたるユーザーの識別に拡張します。プラットフォーム間でユーザーを統合し、エンゲージメントするために、External ID、タグ、マルチチャネルサブスクリプション、プライバシー、イベントトラッキングについて説明します。External IDを割り当て
External IDを使用して、バックエンドのユーザー識別子を使用して、デバイス、メールアドレス、電話番号間でユーザーを一貫して識別します。これにより、チャネルとサードパーティシステム間でメッセージングが統一されたままになります(特に統合に重要)。 アプリによって識別されるたびに、SDKのloginメソッドを使用してExternal IDを設定します。
データタグを追加
タグは、ユーザープロパティ(username、role、設定など)とイベント(purchase_date、game_level、ユーザーインタラクションなど)を保存するために使用できる文字列データのキーと値のペアです。タグは、高度なメッセージパーソナライゼーションとセグメンテーションを強化し、より高度なユースケースを可能にします。
アプリでイベントが発生したときに、SDKのaddTagおよびaddTagsメソッドを使用してタグを設定します。
この例では、ユーザーはレベル6に到達し、current_levelというタグで識別され、値は6に設定されます。

"current_level"というタグが"6"に設定されたOneSignalのユーザープロファイル

current_level値が4より大きく10より小さいユーザーをターゲットとするセグメントを示すセグメントエディター

パーソナライズされたメッセージでLevel 5-10セグメントをターゲットとするプッシュ通知を示すスクリーンショット

パーソナライズされたコンテンツを含むプッシュ通知がiOSおよびAndroidデバイスで受信されます
メールおよび/またはSMSサブスクリプションを追加
以前、SDKがプッシュとアプリ内メッセージを送信するためにモバイルサブスクリプションを作成する方法を見ました。対応するサブスクリプションを作成することで、メールとSMSチャネルを通じてユーザーにリーチすることもできます。addEmailメソッドを使用してメールサブスクリプションを作成します。addSmsメソッドを使用してSMSサブスクリプションを作成します。

External IDによって統合されたプッシュ、メール、SMSサブスクリプションを持つユーザープロファイル
- メールまたはSMSサブスクリプションを追加する前に、明示的な同意を得てください。
- 各コミュニケーションチャネルの利点をユーザーに説明してください。
- ユーザーが好むチャネルを選択できるように、チャネルの設定を提供してください。
プライバシーとユーザー同意
OneSignalがユーザーデータを収集するタイミングを制御するには、SDKの同意ゲーティングメソッドを使用します:setConsentRequired(true):同意が与えられるまでデータ収集を防ぎます。setConsentGiven(true):同意が付与されるとデータ収集を有効にします。
プッシュ許可のプロンプト
アプリを開いたときにすぐにrequestPermission()を呼び出すのではなく、より戦略的なアプローチを取ります。許可をリクエストする前に、アプリ内メッセージを使用してプッシュ通知の価値を説明します。
ベストプラクティスと実装の詳細については、プッシュ許可のプロンプトガイドを参照してください。
プッシュ、ユーザー、アプリ内イベントをリッスン
SDKリスナーを使用して、ユーザーのアクションと状態の変化に反応します。 SDKは、フックできるいくつかのイベントリスナーを提供します。詳細については、SDKリファレンスガイドを参照してください。プッシュ通知イベント
addClickListener():通知がタップされたときを検出します。ディープリンクに役立ちます。addForegroundLifecycleListener():フォアグラウンドでの通知の動作を制御します。
ユーザー状態の変更
- ユーザー状態用の
addObserver():External IDが設定されたときを検出します。 addPermissionObserver():ネイティブのプッシュ許可プロンプトとのユーザーの特定のインタラクションを追跡します。- プッシュサブスクリプション用の
addObserver():プッシュサブスクリプションのステータスが変更されたときを追跡します。
アプリ内メッセージイベント
addClickListener():アプリ内クリックアクションを処理します。ディープリンクやイベントの追跡に最適です。addLifecycleListener():アプリ内メッセージの完全なライフサイクル(表示、クリック、閉じるなど)を追跡します。
高度なセットアップと機能
統合を強化するための追加機能を探索します:- 🔁 別のサービスからOneSignalへの移行
- 🌍 位置情報トラッキング
- 🔗 ディープリンク
- 🔌 統合
- 🧩 Mobile Service Extensions
- 🛎️ アクションボタン
- 🌐 多言語メッセージング
- 🛡️ Identity Verification
- 📊 カスタムアウトカム
- 📲 Live Activities
Mobile SDKのセットアップとリファレンス
モバイルプッシュセットアップガイドを確認して、すべての主要機能が有効になっていることを確認してください。 利用可能なメソッドと設定オプションの詳細については、Mobile SDKリファレンスにアクセスしてください。support@onesignal.comにメールしてください以下を含めてください:- 発生している問題の詳細と再現手順(利用可能な場合)
- OneSignal App ID
- 該当する場合は、External IDまたはSubscription ID
- 該当する場合は、OneSignalダッシュボードでテストしたメッセージのURL
- 関連するログまたはエラーメッセージ