プッシュ技術は、アプリケーションのユーザーに通知を配信するための最も速い方法の1つです。それを受け取るために、ユーザーは何もする必要がなく、サーバー側で開始され、モバイルデバイスの画面上の通知バーに直接表示されます。このレッスンでは、AppMaster プラットフォームで構築されたアプリケーションにプッシュ通知を実装する方法について理解します。
Send Push ブロック
プッシュ通知を送信するためのものです。 Send Pushブロックは、ターゲットデバイスのオペレーティングシステムに対応する (iOSまたは Android).
Push Token の取得とBundle ID
送信を行うには、少なくとも2つのパラメータを指定する必要があります。 Push Tokenと IOS (Android) Bundle ID.したがって、これらのパラメータをどのように取得するか、準備の部分から始める価値があります。
デフォルトでは、各プロジェクトのデータベースには Mobile Instanceモデルにリンクされた Userモデルにリンクされ、必須フィールドを含むモデルが含まれています。 push_tokenと bundle_id.
モバイルアプリケーション用に別のビジネスプロセスを作成し、完成された Mobile Instanceモデルを作成します。プッシュトークンを取得するには Get Push Tokenブロックを使用します。
次に、デバイスの情報を取得します。そしてここでは、オペレーティングシステムによって、異なるブロックが必要になります。したがって、オペレーティングシステムを判断するためには Platform Switchブロックを使用します。
その結果によって、対応する IOS Device Infoまたは Android Device Infoブロックが使用されます。そこから、デバイスに関するさまざまな情報を得ることができますが、この例では、以下の情報のみを知ることができれば十分です。 Bundle ID.
すべてのデータを収集した後、モデルを作成し、どのオペレーティング・システムに属しているかを示すことができます。 Mobile Instanceモデルを作成し、どのオペレーティングシステムに属しているかを示し、ビジネスプロセスの出力パラメータとして渡します。
ユーザーのモバイルデバイスに関する情報を記録する
次のステップでは、生成されたモバイルデバイスと特定のユーザーを接続するためのバックエンドビジネスプロセスを作成します。 Mobile Instanceを特定のユーザーと結びつけてデータベースに記録するためのバックエンドビジネスプロセスを作成します。このビジネスプロセスには、次のようなものが必要です。
- を使用して現在のユーザーを検索します。 Auth: Get current userブロックを作成します。
- 生成されたモデルの内容を展開する Mobile Instanceモデルの内容を展開します。
- モデルを再組み立てし、ユーザー接続を Make Mobile Instanceブロックを使ってユーザー接続を追加します。
- ブロックを使って DB: Create Mobile Instanceブロックを使用して、データベースにデータを保存します。
で POST /Mobile Instance/エンドポイントでは、標準のビジネスプロセスを先ほど作成したものに置き換えることができます。
準備の最終段階は、ユーザーのデバイスに関する情報をデータベースに書き込む価値があるのは一体いつなのかを決定することです。論理的な解決策は、アプリケーションで認証を実行するときにこれを行うことです。これを行うには Set Auth Tokenブロックの直後に、モバイルアプリケーションのユーザー認証プロセスに、以前に作成されたビジネスプロセスを持つ2つの新しいブロックを追加する必要があります。1つ目は必要な情報を受け取って生成し、2つ目はユーザーとの接続を作成してデータベースに書き込む。
プッシュ通知の送信
準備的な部分が完了したので、プッシュ通知の送信を開始できます。そのために、バックエンドのビジネス・プロセスを作成します。我々のタスクは、アプリケーションの全ユーザーに通知を送ることだと想像してください。Android オペレーティングシステムを搭載したデバイスにのみ送信し、すべてのユーザーのデバイスに送信するのではなく、最後に使用されたデバイスにのみ送信することにします。
まず、入力パラメータから説明します。通知のテキストそのものを転送する必要があります。これは3つの部分から成ります: メッセージのボディ (body)、そのタイトル(title)、そしてサブタイトル(subtitle).
次に、アプリケーションのすべてのユーザーを検索する必要があります。これを行うには Search Userブロックを使用して、必要なパラメータを設定します。
- _With = Mobile Instances(ユーザーに関する情報だけでなく、それに関連するモバイルデバイスに関する情報も取得する必要があります)
- Limit = -1(デフォルトでは、クエリは25レコードを返します。"-1 "を指定すると、この制限が解除され、すべてのユーザが取得されます)
- _mobile_instances_os = Android(タスクの条件に従って、Android デバイスにのみ興味があります)
生成されたユーザーの配列に対して、一連の処理を実行する (For each loopブロック)
からの各ユーザーに対して Expand Userブロックから、モバイルデバイスに関する情報を取得する必要があります(Mobile Instances).1つのデバイスにのみ通知を送る必要があるので、ブロック内の index = 0を Array Elementブロックに設定し、さらに配列が少なくとも1つの要素をまったく含まないかどうかをチェックします (結局のところ、ユーザーはiOS デバイスしか持つことができません)。これを行うには、要素が有効であるかどうかをチェックし、有効なインデックス値を If-Elseブロックに渡し,その値が true.
すべてが正しく、ユーザーのデバイスに関する情報が見つかったら、次に Expand Mobile Instanceブロックに必要な値を渡し Send Push (Android)ブロックに必要な値を渡す必要があります。
でアプリケーションを開発し、テストする場合は、.NET を使用する必要があることに注意してください。 Developer Appを設定する必要があります。 Developer Mode = True.
を使用することもできます。 TTL (Time to live)オプションを使用することもできます。これは、通知が送信されるまでの時間を秒単位で定義します。ユーザーが一時的に圏外にいる場合など、通知をすぐに配信できない場合は、割り当てられた時間で繰り返し配信が試みられます。
サイクルが終了し、すべての可能なユーザーに通知を送信すると、ビジネスプロセスの作業も終了します。
追加パラメータ
別途、送信ブロックの追加パラメータについて説明します。
- Push ID
- Push Class
- Data
これらは、通知の送信やその内容には影響しませんが、ユーザー側で通知を処理するときに使用されます。モバイルアプリケーションには、受信したプッシュ通知を受け取るか、クリックしたときに起動する特別なトリガーがあります。
プッシュ通知トリガーには、上記の追加テキストパラメータのデータが含まれます。例として、最も単純な処理をあげます。この処理は、トリガーがクリックされると Dataパラメータで渡された情報を画面に表示します。
トリガーのもう一つの一般的な使用例は、通知の配信に関する情報を収集することです。例えば、Push通知が確かに配信されたことを示すメッセージをサーバーに送信したり、統計情報を収集し、通知のクリック数をカウントしたりすることができます。