@capacitor/push-notifications
プッシュ通知APIは、ネイティブなプッシュ通知へのアクセスを提供します。
Install
npm install @capacitor/push-notifications
npx cap sync
iOS
iOSでは、Push Notificationsケイパビリティを有効にする必要があります。ケイパビリティを有効にする方法についてはケイパビリティの設定を参照してください。
Push Notificationsケイパビリティを有効にした後、アプリのAppDelegate.swiftに以下を追加します:
func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
NotificationCenter.default.post(name: .capacitorDidRegisterForRemoteNotifications, object: deviceToken)
}
func application(_ application: UIApplication, didFailToRegisterForRemoteNotificationsWithError error: Error) {
NotificationCenter.default.post(name: .capacitorDidFailToRegisterForRemoteNotifications, object: error)
}
Android
Push Notification APIは通知を処理するためにFirebase Cloud Messaging SDKを使用します。AndroidでFirebase Cloud Messagingクライアントアプリをセットアップするを参照し、Firebaseプロジェクトの作成とアプリケーションの登録の手順に従ってください。Firebase SDKをアプリに追加したり、アプリマニフェストを編集したりする必要はありません - Push Notificationsがそれを提供します。必要なのは、Firebaseプロジェクトのgoogle-services.jsonファイルをアプリのモジュール(アプリレベル)ディレクトリに追加することだけです。
Android 13では、プッシュ通知を受信するためにパーミッションチェックが必要です。SDK 33をターゲットにする場合は、checkPermissions()とrequestPermissions()を適切に呼び出す必要があります。
Android 15以降、ユーザーはプライベートスペースにアプリをインストールできます。ユーザーはいつでもプライベートスペースをロックでき、ユーザーがロックを解除するまでプッシュ通知は表示されません。
アプリがプライベートスペースにインストールされているかどうかを検出することはできません。そのため、アプリが重要な通知を表示する場合は、プライベートスペースにアプリをインストールしないようユーザーに通知してください。
プライベートスペースに関連するアプリの動作変更の詳細については、Androidドキュメントを参照してください。
Variables
このプラグインは以下のプロジェクト変数(アプリの variables.gradle ファイルで定義)を使用します:
firebaseMessagingVersion:com.google.firebase:firebase-messagingのバージョン(デフォルト:25.0.1)
プッシュ通知アイコン
Androidでは、適切な名前のプッシュ通知アイコンをAndroidManifest.xmlファイルに追加する必要があります:
<meta-data android:name="com.google.firebase.messaging.default_notification_icon" android:resource="@mipmap/push_icon_name" />
アイコンが指定されていない場合、Androidはアプリケーションアイコンを使用しますが、プッシュアイコンは透明な背景に白いピクセルである必要があります。アプリケーションアイコンは通常そのようになっていないため、白い正方形または円が表示されます。そのため、プッシュ通知用に別のアイコンを提供することをお勧めします。
Android Studioにはプッシュ通知アイコンを作成するために使用できるアイコンジェネレーターがあります。
プッシュ通知チャンネル
Android 8.0(APIレベル26)以降では、通知チャンネルがサポートされ、推奨されています。SDKは以下の順序で受信プッシュ通知のchannelIdを決定します:
- まず、受信通知に
channelIdが設定されているかどうかを確認します。 FCMダッシュボードまたはAPIからプッシュ通知を送信する際に、channelIdを指定できます。 - 次に、
AndroidManifest.xmlで指定された値があるかどうかを確認します。 独自のデフォルトチャンネルを作成して使用する場合は、default_notification_channel_idを通知チャンネルオブジェクトのIDに設定します。FCMは受信メッセージで通知チャンネルが明示的に設定されていない場合にこの値 を使用します。
<meta-data
android:name="com.google.firebase.messaging.default_notification_channel_id"
android:value="@string/default_notification_channel_id" />
- 最後に、Firebase SDKが提供するフォールバック
channelIdを使用します。 FCMは基本設定のデフォルト通知チャンネルをすぐに使用できるように提供します。このチャンネルは、最初のプッシュメッセージを受信したときにFirebase SDKによって作成されます。
警告 オプション1または2を使用する場合でも、選択したオプションで使用されるIDと一致するIDを持つ通知チャンネルをコードで作成する必要があります。これには
createChannel(...)を使用できます。これを行わないと、SDKはオプション3にフォールバックします。
フォアグラウンドでのプッシュ通知の表示
アプリがフォアグラウンドにあるときのプッシュ通知の表示方 法を設定できます。
| プロパティ | 型 | 説明 | Since |
|---|---|---|---|
presentationOptions | PresentationOption[] | 組み合わせ可能な文字列の配列です。配列の可能な値: - badge: アプリアイコンのバッジカウントが更新されます(デフォルト値) - sound: プッシュ通知を受信するとデバイスが鳴動/振動します - alert: プッシュ通知がネイティブダイアログで表示されます。オプションが不要な場合は空の配列を指定できます。badgeはiOSのみで使用可能です。 | 1.0.0 |
設定例
capacitor.config.jsonでの設定:
{
"plugins": {
"PushNotifications": {
"presentationOptions": ["badge", "sound", "alert"]
}
}
}
capacitor.config.tsでの設定:
/// <reference types="@capacitor/push-notifications" />
import { CapacitorConfig } from '@capacitor/cli';
const config: CapacitorConfig = {
plugins: {
PushNotifications: {
presentationOptions: ["badge", "sound", "alert"],
},
},
};
export default config;