Forguncy 10 オンラインヘルプ
アプリの開発 / ロジックの実装 / サーバーサイド処理 / プッシュ通知 / プッシュ通知の作成
このトピックで
    プッシュ通知の作成
    このトピックで

    本ページでは簡単なリクエスト管理ページの作成を例として、プッシュ通知の作成方法と利用例を紹介します。

    プッシュ通知を利用することで、他のユーザーの操作などを通知として受け取り、それをトリガーにしてコマンドを実行することが出来ます。本ページでは、他のユーザーのデータ更新を検知して、一覧ページをリアルタイムに更新する機能を実装します。

    使い方

    1. 次のような「リクエスト」テーブルを作成し、テーブルからページを生成します。

      ページの生成手順はテーブルからページを作成を参照してください。

    2. [作成]リボンタブ - [プッシュ通知]ボタンをクリックし、[新しいプッシュ通知の作成]ダイアログを開きます。

    3. [新しいプッシュ通知の作成]ダイアログで、次のような「リフレッシュ通知」を作成します。

    4. [OK]ボタンをクリックして[新しいプッシュ通知の作成]ダイアログを閉じると、作成されたプッシュ通知がナビゲーション ウィンドウに表示されます。

      アイコンをクリックすると、プッシュ通知の各種設定が展開表示されます。[全般]/[パラメーター]をダブルクリックすると、それぞれのダイアログが表示されます。

      プッシュ通知を選択し右クリックすると、コンテキストメニューが表示され、[開く]や[複製]が行えます。

    5. 「リクエスト」テーブルのレコード追加時をトリガーとしてプッシュ通知を送信する、次のスケジュールタスクを作成します。

      スケジュールタスクの作成手順はスケジュールタスクを参照してください。

      コマンドを次のように設定してください。パラメーターに設定された値が、送信されるプッシュ通知に情報として付与されます。

    6. 生成された一覧ページのページロード時のコマンドに、プッシュ通知を受信する処理を実装します。

      結果表示用に、一覧ページに次のように行を追加します。リストビューの列幅は、見やすいように任意に設定してください。

      ページロード時のコマンドを、次のように設定します。「プッシュ通知の登録」コマンドは、そのページで指定したプッシュ通知を受信可能にするコマンドです。プッシュ通知の通信はページごと(ブラウザーのタブごと)に独立しているため、受信したいページごとにこのコマンドを設定する必要があります。

      「プッシュ通知の登録」コマンドの後に、プッシュ通知受信後に実行するコマンドを設定できます。次のように、プッシュ通知の内容を表示し、リストビューを再表示するコマンドを設定します。

    7. プッシュ通知の動作を確認します。

      次のように、開発時のユーザーアカウントを設定します。手順については開発時ユーザーアカウント管理へのログインを参照してください。

      次の手順で動作を確認します。

      • 一覧ページをスタートページに設定し、デバッグ実行します。作成したユーザー「tanto1」でログインします。
      • URLをコピーして、別のブラウザーからデバッグページにアクセスします。Forguncyはブラウザーごとにユーザーをカウントするため、ブラウザーを変えることで別ユーザーの操作を再現できます。作成した「tanto2」でログインし、「登録ページ」のリンクから任意のレコードを登録します。
      • 「tanto1」でログインした一覧ページが、プッシュ通知を受け取って自動で更新されます。

        また、このときブラウザーの開発者ツールのコンソールタブから、実際に受信したプッシュ通知の内容を確認できます。

    通知先を限定したプッシュ通知

    通知グループを利用することで、通知先を限定してプッシュ通知を送信できます。上記で作成したリクエスト管理ページに、リクエストのオープン機能を実装し、「担当者」ロールを持つユーザのみが受信できるプッシュ通知を実装します。

    1. リクエストのオープン時にプッシュ通知を送信する、次のサーバーサイドコマンドを実装します。

      サーバーサイドコマンドの作成手順については、サーバーサイドコマンドの基本型のパラメーターを参照してください。

      今回は、戻り値タブの設定は不要です。コマンドタブでは「プッシュ通知の送信」コマンドの[送付先]に通知グループ「担当者」を指定します。

    2. 通知グループ「担当者」に参加する、次のサーバーサイドコマンドを作成します。

      通知グループを指定したプッシュ通知を受信するには、その通知グループに参加している必要があります。通知グループへの参加は、サーバーサイドコマンドの「通知グループ参加」コマンドを使用します。

    3. 登録・更新ページに「オープン」ボタンを作成します。

      任意の場所に、ログインユーザー型セルと「オープン」ボタンを配置します。また、「ステータス」を標準セル型にして、ユーザーサイドでの入力を不可にします。

      「オープン」ボタンのコマンドを、次のように設定します。

      パラメーター「user」には、ログインユーザー型セルのセル位置を指定します。%CurrentUser%キーワードからログインユーザー名を設定できます。

    4. 一覧ページのページロード時のコマンドに、ログインユーザーが「担当者」ロールを持つとき、通知グループ「担当者」に参加する処理を追加します。

    5. プッシュ通知の動作を確認します。

      次の手順で動作を確認します。

      • 一覧ページをスタートページに設定し、デバッグ実行します。作成したユーザー「tanto1」でログインします。
      • URLをコピーして、別のブラウザーからデバッグページにアクセスします。作成した「tanto2」でログインし、任意のレコードを「更新」リンクから「オープン」ボタンで「オープン」します。
      • 「tanto1」でログインした一覧ページが、プッシュ通知を受け取って自動で更新されます。

      • 同様の手順で、「担当者」ロールを持たないユーザー「user1」でログインしたとき、レコード追加時のプッシュ通知は受信でき、オープン時の通知は受信できないことを確認します。

    レコードの更新通知を同時実行制御に利用する

    レコード更新時にプッシュ通知を送信することで、同じレコードを参照しているユーザーにレコードの更新を伝えることが出来ます。上記で作成したリクエスト管理ページに、レコード更新時のプッシュ通知を実装します。

    1. プッシュ通知「更新通知」を作成します。

      更新されたレコードを参照しているかを判断するために、プッシュ通知のパラメータにID情報を持たせます。パラメータを以下のように設定します。

    2. レコード更新時に「更新通知」を送信するスケジュールタスクを作成します。

      以下のようなスケジュールタスク「リクエスト更新時の通知」を作成します。

    3. レコードの更新ページにプッシュ通知受信時のコマンドを作成します。

      「リクエスト_登録・更新の共通ページ」のページロード時のコマンドに、以下のコマンドを設定します。

      受信したプッシュ通知の「id」パラメータと、表示されているレコードのIDが等しいとき、ユーザーにレコードが更新されたことを伝えます。

    プッシュ通知を利用して、様々なリアルタイム処理を実装することが出来ます。ただし、あまりにも通知の頻度が多い場合、受信後の処理が短時間に何度も実行され、サーバーに高い負荷をかけるおそれがあることに注意してください。