
iOSのアクションボタンを示す画像
このガイドはプッシュ通知にのみ適用されます。アプリ内メッセージについては、アプリ内メッセージ:クリックアクションを追加する方法を参照してください。
アクションボタンを追加する
アクションボタンは、テンプレートで設定するか、ダッシュボードでメッセージを作成する際に直接設定するか、API経由で設定できます。ダッシュボードとテンプレートのセットアップ
プッシュを作成する際、詳細オプション > アクションボタンを開きます。
iOSとAndroid用に追加されるアクションボタンを示す画像
APIのセットアップ
- モバイルアプリ:
buttonsパラメータを使用します。id、text、iconを持つ最大3つのオブジェクトの配列を渡します。 - ウェブ(Chrome):
web_buttonsを使用し、id、text、icon、urlを持つ最大2つのオブジェクトを渡します。
アクションボタンのプロパティ
-
Action ID:特定のボタンアクションの一意の識別子。クリックされたボタンのIDが渡されるため、どのボタンがクリックされたかを識別できます。(例:‘accept-button’)
- ボタンごとに一意である必要があります。
- OSNotificationペイロードで利用可能で、SDK Notification Opened Event Handler内でアクセスできます。
- API:
idプロパティ
-
Label:ボタンがユーザーに表示するテキスト。(例:‘Accept’)
- API:
textプロパティ
- API:
-
Icon:ボタンラベルと一緒に表示されるオプションのアイコン。すべてのプラットフォームとオペレーティングシステムで利用できるわけではありません。詳細については、以下のFAQを参照してください。
- モバイルアプリでは、ボタンを画像リソースに含める必要があります。詳細については、以下のアクションボタンアイコンを参照してください。
- ウェブサイトでは、アイコンへの有効な公開アクセス可能なURLを使用できます。通知が表示されるたびにダウンロードされるため、小さく保つようにしてください。(例:
http://site.com/icon.png) - API:
iconプロパティ
-
Button URL:通知がクリックされたときに開くURL。URLを開かないようにするには、
'do_not_open'を渡します。(例:‘do_not_open’)- ウェブのみ
- API:
urlプロパティ
アクションボタンアイコン
- iOSはiOS 15以降のアクションボタンアイコンをサポートしています
- AndroidはAndroid N(別名7)以降、アクションボタンアイコンのサポートを停止しました
アクションボタンのクリックを処理する
ユーザーがボタンをタップすると、OneSignalはアプリ/サイトにAction IDを配信します。デフォルトの動作(アプリ/サイトを開く)を使用するか、オーバーライドできます。デフォルトの動作(アプリ/サイトを開いてから処理)
- アプリ/サイトが開きます(ウェブではフォーカスされます)。
- クリック/オープンリスナーがAction IDを含むイベントを受信します。(クリックリスナーの詳細については、モバイルSDKリファレンスまたはウェブSDKリファレンスを参照してください。)
アクションボタンのクリックからアプリの起動を防ぐ
- Android:Android SDKセットアップ > デフォルトの開く動作を無効にするに従ってください。これにより、Service Extensionsでクリックをインターセプトし、アプリを開かずにカスタムロジック(例:APIを呼び出す)を実行できます。
- iOS:UNNotificationCategory Objectを介してアクションを関連付けるために、通知に
ios_categoryを含めます。詳細については、AppleのDeclaring Your Actionable Notification Typesを参照してください。 - Web(Chrome):
_osp=do_not_openマジック文字列を使用して、URLを開かないようにします。これはChromeとFirefoxでサポートされていますが、Safariウェブブラウザではサポートされていません。
サポートされているプラットフォームと制限
| プラットフォーム | サポートされるボタン | 注意事項 |
|---|---|---|
| iOS | 最大4つ | iOS 15以降でアイコン対応。バックグラウンド処理にはカテゴリが必要です。 |
| Android / Amazon / Huawei | 最大3つ | Android 7以降、ボタンアイコンはありません。 |
| Web – Chrome | 最大2つ | ボタンとアイコンがサポートされています。_osp=do_not_openがサポートされています。 |
| Web – Firefox | ボタンなし | _osp=do_not_openは起動URLのみで機能します。 |
| Web – Safari | ボタンなし | _osp=do_not_openはサポートされていません。実際のURLを提供してください。 |
ユーザーは、ボタンを表示するために通知を展開する必要がある場合が多くあります(例:iOSでの長押し、一部のAndroid OEMでのスワイプ + 表示)。
トラブルシューティング
ボタンが表示されない
- 通知を展開します(長押し、スワイプ + 表示、または展開)。
- 各ボタンにAction IDとLabelを追加したことを確認してください。
- プラットフォームの制限を確認してください(例:Chromeでは2つのボタンのみ)。
モバイルウェブでボタンをクリックしてもブラウザが開かない
ブラウザがバックグラウンドにあるか完全に閉じている場合、クリックイベントがサービスワーカーで依然としてトリガーされても、ほとんどのモバイルブラウザ(Chromeを含む)はフォアグラウンドに移動したりURLを開いたりしません。これは、バックグラウンドアプリがユーザーを中断するのを防ぐための意図的なブラウザの動作です。- ほとんどのモバイルブラウザは、バックグラウンドサービスワーカーから自身をフォアグラウンドにしません。クリックはワーカーで依然として発生しますが、タブは開きません。これは意図的なものです。
- 新しいタブを開く代わりにタブをフォーカスすることを期待する場合は、起動URLとボタンURLが完全に一致していることを確認してください(末尾のスラッシュを含む)。
アイコンが表示されない
- iOSはボタンアイコンのためにiOS 15以降である必要があります。
- Android 7以降は、アクションボタンアイコンをレンダリングしません。
- ウェブでは、アイコンURLが公開アクセス可能で小さい(ダウンロードが速い)ことを確認してください。
なぜ閉じるアクションボタンがあるのですか?
デフォルトでは、Windows 10のウェブプッシュ通知には閉じるボタンが含まれています。ただし、独自のアクションボタンを追加すると、この閉じるボタンは削除されます。したがって、いずれの場合も、ユーザーが通知と対話するまで、通知は画面上に残ります。これは、ユーザーに通知と対話する機会を与えるためにGoogleによって設計されています。Need help?Chat with our Support team or email
support@onesignal.comPlease include:- Details of the issue you’re experiencing and steps to reproduce if available
- Your OneSignal App ID
- The External ID or Subscription ID if applicable
- The URL to the message you tested in the OneSignal Dashboard if applicable
- Any relevant logs or error messages