プッシュ通知
このセクションで触れている内容は、4D for Android では現在ご利用いただけません。
プッシュ通知とは
モバイルデバイスにおいて、アプリ経由で受信するアラートメッセージをプッシュ通知といいます。 この通知は表示・削除・許可・ブロックすることができます。 たとえば、アプリの新しいバージョンが利用可能になったことをユーザーに通知するのに便利です。
この機能をモバイルアプリに統合するためには、どのようなアーキテクチャーが必要でしょうか。 また、プッシュ通知の作成からモバイルデバイス上の表示まで、どのような流れでおこなわれるのでしょうか。
技術的アーキテクチャー
ここでは、モバイルプッシュ通知の作成・送信・受信に必要な各要素について説明します。
システム要件
プッシュ通知を送信するには、Apple社から提供される AuthKey_XXXYYY.p8
認証ファイルが必要です。
プッシュ通知の基本的な例
4D Mobile App Server コンポーネントは、1人以上の受信者にプッシュ通知するためのメソッドを提供しています。 詳細については、プッシュ通知コンポーネントのドキュメント を参照ください。
以下は、test@4d.com
にプッシュ通知を送信する簡単な例です:
$pushNotification:=MobileAppServer.PushNotification.new()
$notification:=New object
$notification.title:="ここがタイトルです"
$notification.body:="ここが通知の内容です"
$response:=$pushNotification.send($notification;"test@4d.com")
このように、とても簡単です。
4D Mobile App Server コンポーネント を使用すると、プッシュ通知を簡単にニーズに合わせることができます。 アプリに最適な部分を選んで、自由にお使いください。 もちろん、フィードバックやバグレポート、さらにはプルリクエストを通じて、このプロジェクトへの貢献を歓迎します。
プッシュ通知とデータの同期
プッシュ通知で、データを更新するための同期を開始することもできます。
たとえば、アプリに荷物追跡オプションがある場合、顧客に送られた通知により、データベースの配達状況が更新されます。 この通知にはデータの同期リクエストが含まれており、顧客はスマートフォンで最新のデータを取得できます。
4D Mobile App Server
コンポーネントを使用してこれをおこなうには、プッシュ通知でデータの同期を強制するかどうかを指定する必要があります。 これには、userInfo
オブジェクトの dataSynchro
ブール値を指定します。
レコードを開く通知とデータの同期
デフォルトで、レコードを開く通知はデータの同期を自動的に開始します。
たとえば、連絡先アプリにおいて、連絡先の情報 (住所や電話番号などの連絡先のレコード) が変更された場合、ユーザーは受け取った通知から自動的に当該レコードを開き、そのデータを同期できます。 ユーザーが通知を開くと、連絡先の情報が完全に更新されます。
以下は、デフォルトの動作の例です。 dataSynchro
リクエストと open()
を組み合わせて使います:
open()
メソッドにおいては、これがデフォルトの動作です。 そのため、指定していない場合の dataSynchro
のデフォルト値は true
です。
$pushNotification:=MobileAppServer.PushNotification.new()
$notification:=New object
$notification.title:="ここがタイトルです"
$notification.body:="ここが通知の内容です"
$entity:=ds.Employees.get("456456")
$response:=$pushNotification.open($entity; $notification; $recipients)
dataSynchro
を指定することで、データの同期を強制しないことも可能です:
$pushNotification:=MobileAppServer.PushNotification.new()
$notification:=New object
$notification.title:="ここがタイトルです"
$notification.body:="ここが通知の内容です"
$notification.userInfo:=New object("dataSynchro"; False)
$entity:=ds.Employees.get("456456")
$response:=$pushNotification.open($entity; $notification; $recipients)
シンプル通知とデータの同期
特定のレコードを開かずに、簡単な通知のための同期を要求することができます。 たとえば、新しいエントリーがいくつか追加されたとします。 そのことを通知し、ユーザー操作なしにデータを更新することができます。
これには、以下のコード例のように、userInfo
オブジェクトの dataSynchro
の値を指定します (他の通知方法でも同様に使えます)。
$pushNotification:=MobileAppServer.PushNotification.new()
$notification:=New object
$notification.title:="ここがタイトルです"
$notification.body:="ここが通知の内容です"
$notification.userInfo:=New object("dataSynchro"; True)
$response:=$pushNotification.send($notification; $recipients)
Windows の設定
Windows ユーザーは、マシンの環境変数を扱うため、最新の CURL バージョン をダウンロードする必要があります。 または、運用データベースの Resources フォルダーに curl.exe を挿入することもできます。
MobileApps フォルダー
Windows でも macOS でも、開発プロジェクトから運用プロジェクトに以下のファイルをコピーする必要があります:
4DBASE/MobileApps/ID.BundleID/AuthKey_XXXX.P8
4DBASE/MobileApps/ID.BundleID/manifest.json