ここでは、プッシュ通知用のデバイス登録サービスを使用する方法と、その概要について説明します。
エンドユーザーが、
[ Enable Notifications ] プロパティが有効な GeneXus アプリケーションを実行するたびに、将来デバイスへのメッセージの送信に使用されるデバイス情報を登録および格納するために、
[ Registration Handler ] プロパティで設定されたサービスが自動的に実行されます。
このサービスの例として、
NotificationsRegistrationHandler という名前の
Procedure オブジェクトが含まれています。典型的な実装が、 [
KB エクスプローラー ] の、 [ Root Module ] > [ GeneXus ] > [ SD ] > [ Notifications ]
にあります。
ルール:
parm(in:&DeviceType, in:&DeviceId, in:&DeviceToken, in:&DeviceName);
コード:
for each
where DeviceType = &DeviceType
where DeviceId = &DeviceId
DeviceToken = &DeviceToken
DeviceName = &DeviceName
when none
new
DeviceType = &DeviceType
DeviceId = &DeviceId
DeviceToken = &DeviceToken
DeviceName = &DeviceName
endnew
endfor
デバイス情報を取得するには、次の 4 つのパラメーターが
parm ルールに含まれている必要があります。
- &DeviceType: SmartDeviceType
- &DeviceId: Character(128)
- &DeviceToken: Character(1000)
- &DeviceName: Character(128)
サービスの実行後、次のような情報が登録されます:
- DeviceType:
Apple または
Android
- DeviceId:
8bb3ud27c7cce885b1c41a3cf5f5bd3m4b22w96d
-
DeviceToken:
[ Notifications Provider ] プロパティの値が "None" 以外の場合、このトークンにはデバイスに関する情報が JSON 形式で含まれます。
そのようなデータ (通知プロバイダーとして OneSignal を使用) は、次のようになります:
{
"DeviceToken": "PJy0nafLvZiXvbGlmYuidCpA7JY5ryuW30KoQmpOs=",
"DeviceId": "8bb3ud27c7cce885b1c41a3cf5f5bd3m4b22w96d",
"DeviceType": 1,
"NotificationPlatform": "OneSignal",
"NotificationPlatformId": fb508412-2f91-46b1-90e1-f052247d1f8c
}
* DBMS が
MySQL の場合、
DeviceToken は Char(1000) ではなく
VarChar(1000) と定義する必要があります。このようにしないと、トークン全体が記録されません。
通知プロバイダーを使用していない場合、トークンは次のようになります:
PJy0nafLvZiXvbGlmYuidCpA7JY5ryuW30KoQmpOs=
この情報を使用して、(アプリケーションを使用する) 登録済みのデバイスにメッセージを
送信することができます。
注:
- 完全なオフラインアプリケーションがあり、オフラインに限定して生成するためにこの登録ハンドラープロシージャーが必要な場合、[ Main ] プロパティを False、[ Connectivity Support ] プロパティを Offline に設定する必要があります。
- KBN (ナレッジ ベース ナビゲーター) またはシミュレーターを使用してプロトタイプを作成する場合は、デバイスの登録が機能しません。
- アプリケーションを開くと登録ハンドラーサービスが呼び出されます。
- Android の [ Sender Id ] プロパティや [ Sender API Key ] プロパティはメインオブジェクトから設定されません。
- Google Play サービスがインストールされていないシミュレーターは Firebase をサポートしないため、それらのシミュレーターは登録されません。代わりにデバイスを使用してください。
Apple アプリケーションでプッシュ通知を設定する方法
Android アプリケーションでプッシュ通知を設定する方法