最近のアクセス:
プッシュ通知用のデバイス登録サービスを使用する方法

ここでは、プッシュ通知用のデバイス登録サービスを使用する方法と、その概要について説明します。
エンドユーザーが、[ 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=
  • DeviceName:
       iPhone Mary
この情報を使用して、(アプリケーションを使用する) 登録済みのデバイスにメッセージを送信することができます。
注: 
  • 完全なオフラインアプリケーションがあり、オフラインに限定して生成するためにこの登録ハンドラープロシージャーが必要な場合、[ Main ] プロパティを False、[ Connectivity Support ] プロパティを Offline に設定する必要があります。
  • KBN (ナレッジ ベース ナビゲーター) またはシミュレーターを使用してプロトタイプを作成する場合は、デバイスの登録が機能しません。
  • アプリケーションを開くと登録ハンドラーサービスが呼び出されます。

トラブルシューティング

1.Android デバイスが登録されていない

  • Android の [ Sender Id ] プロパティや [ Sender API Key ] プロパティはメインオブジェクトから設定されません。
  • Google Play サービスがインストールされていないシミュレーターは Firebase をサポートしないため、それらのシミュレーターは登録されません。代わりにデバイスを使用してください。

参考情報

Apple アプリケーションでプッシュ通知を設定する方法
Android アプリケーションでプッシュ通知を設定する方法
  

サブページ
Created: 14/09/18 03:11 by Admin Last update: 24/04/02 23:02 by Admin
カテゴリ
Powered by GXwiki 3.0