Android アプリプッシュ移行手順 #
プッシュ通知用コンポーネントの組み込み #
rtoaster-notification-(バージョン番号).aar, rtoaster-builtin-notification-(バージョン番号).aar をプロジェクトに組み込んでください。
組み込み方法は Android SDKの導入をご確認ください。
プッシュ通知の許諾 #
Android 13以上の環境においてtargetSdkVersionを33以上に設定したアプリケーション内で通知表示を行う場合、プッシュ通知許諾確認ダイアログを表示する実装を追加していただく必要があります。
Rtoaster SDK v5.0以降ではプッシュ通知許諾画面を表示するメソッドを用意しております。
参考:
サンプルコード #
MainActivity の onCreate() でプッシュ通知許諾確認ダイアログを表示させるサンプルコードを以下に記載します。
AndroidManifest.xml #
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="アプリパッケージ名">
...
<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>
...
/>
MainActivity.kt #
class RtoasterTestApplication : Application() {
val logTag = LogOutputUtil.logTag
override fun onCreate() {
super.onCreate()
...
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
RtoasterNotification.requestNotificationPermission(this) { isAllowed ->
if (!isAllowed) {
// ユーザーによって通知の表示が拒否された場合の処理を記述します
// 例: 「拒否した場合は〇〇キャンペーンの通知が受け取れません」と言った案内を表示する
}
}
}
...
}
...
}
プッシュ通知の受信 #
プッシュ通知の受信をするために必要な実装内容についてご説明します。
プッシュ通知受信時、下記の内容でプッシュ通知の表示とタップ時の動作を処理していただく想定となります。
アプリがバックグラウンド状態の場合 #
実装内容 | |
---|---|
通知の表示 | OSによって通知が表示されますので通知の表示に関して実装は不要となります。 スモールアイコンの表示など、表示内容の制御についてはAndroidManifest.xmlに設定を記述していただく必要があります。具体的な記述内容についてはFirebase Cloud Messagingをご確認ください。 |
タップ時の動作 | OSによってランチャーアクティビティ(AndroidManifest.xmlにて定義する<intent-filter>にMAINアクションとLAUNCHERカテゴリを含むActivity。サンプルコードでは「MainActivity」であることを想定しています。)が起動されます。このランチャーアクティビティにてプッシュのタップ時の処理(ブラウザ起動)を実装いただきます。 |
アプリがフォアグラウンド状態の場合 #
実装内容 | |
---|---|
通知の表示 | Push受信用のクラスとしてFirebaseMessagingServiceの子クラス(サンプル中ではPushListenerServiceクラスとなります)を実装し、Android-Manifest.xmlへ登録していただきます。これによりプッシュ受信に、プッシュ受信用のクラス(サンプル中ではPushListenerServiceクラス)内に実装したonMessageReceivedが呼ばれます。この際、onMessageReceived内でRtoasterNotification.onMessageReceivedを実行いただくことにより通知が表示されます。 |
タップ時の動作 | ランチャーアクティビティ(サンプルコードでは「MainActivity」にあたります。)を呼び出すためのIntentをRtoasterNotification.onMessageReceivedの引数として渡していただくことで、バックグラウンド状態の時と同様にランチャーアクティビティにてタップ時の処理(ブラウザ起動)を実行できるようにします。 |
Rtoaster のトラッキング実行 #
Rtoaster.track
を用いてアプリ上でトラッキングを行います。この際、デバイストークンとユーザーIDの紐付がプッシュ配信システムに登録されます。
Rtoaster SDK v5.0以降では複雑な引数も容易に表現できるように、ビルダーパターンを用いて引数を設定するように変更されています。
※デバイストークンをトラッキングの実行を通じてRtoasterに送信しているため、アプリプッシュのみのご利用でもアプリ上でトラッキングを行う必要があります。
サンプルコード #
下記のサンプルコード内では、次のパラメータが使用されています。
引数 | 型 | 説明 | サンプル値 | 必須 |
---|---|---|---|---|
location | String * | アプリのロケーション(画面名など) | testLocation | ○ |
v5.0 #
// Rtoaster トラッキングを実施
try {
Rtoaster.track(TrackingParameter {
location(Location("testLocation"))
}).onFailure {
Log.d("Rtoaster", "Communication error", it)
}
} catch (e: Exception) {
Log.d("Rtoaster", "Parameter error", e)
}
v4.x #
try {
Rtoaster.track(
"testLocation",
null,
HashMap<String, String>()
) { exception ->
Log.d("Rtoaster", "Communication error", exception)
}
} catch (e: Exception) {
Log.d("Rtoaster", "Parameter error", e)
}
メソッド対応表 #
Rtoaster SDK v5.0以降ではコンポーネント化やメソッド名の見直しに伴い、プッシュ通知に関するメソッド名やクラス名が以下のように変更となっています。
デバイストークン(登録 ID)とユーザーIDの登録 #
v5.0 | v4.x |
---|---|
Rtoaster.setUserId | Rtoaster.setMemberId |
カスタムプロパティの利用・効果測定 #
v5.0 | v4.x |
---|---|
RtoasterNotification.onMessageReceived | Rtoaster.onPushMessageReceived |
RtoasterNotification.readCustomProperty | Rtoaster.readCustomProperty |
RtoasterNotification.sendPushOpened | Rtoaster.trackPushOpened |
プッシュ配信の動作確認 #
Rtoaster SDK v5.0では多くの実装変更が行われておりますので、再度の確認を行っていただくことをお勧めします。
Push Payload部仕様 #
FCM標準に準拠しています。
Firebase Cloud Messagingをご参照ください。
通知・カスタムプロパティ項目 #
項目名 | 型 | 意味 |
---|---|---|
data | ||
message | String | 通知本文 |
title | String | 通知タイトル |
id | int | 通知ID この値が同一の場合、以前の通知を上書きすること |
icon | String | アイコンリソース名 |
darjeeling_silent | String | カスタムプロパティ構造 (以下の構造をJSON文字列として格納) |
_rtsdk.XXXX | String | 内部で使用(直接の使用、変更、編集不可) XXX部分は任意の文字列 |
_rtp.XXXX | String | 内部で使用(直接の使用、変更、編集不可) XXXX部分は任意の文字列 |
_rtp.c.XXXX | String | 内部で使用(直接の使用、変更、編集不可) XXXX部分はカスタムプロパティの各キーの設定値 |
- darjeeling_silent 内の項目は内部項目となりますので直接の利用は避けてください。