Notification Center - ローカル 通知 [Japan]

Posted by on in Programming

 アンドロイド、iPhoneなどのスマートフォンを日常的にお使いになられている方は、通知領域、画面上部になにかしらのテキストが表示されるのを見ているかと思います。

アプリ開発の視点から見ると、この通知、発行設定さえしてしまえば、アプリが終了していてもスケジュールされたタイミングに発行してくれるので便利です。また通知をタップした場合に、そのタップ合わせて何らかのアクションを起こせるので、これもまた便利なものです。

Rad Studioにおいてこの通知機能は iOS, Androidともに下記API(コンポーネント)で実装します。

 

TNotificationCenter

 

 

ご存知のとおりRAD Studioは一つのソースコードで複数のOS向けのアプリを作ることができます。いわゆるマルチデバイス開発、クロスプラットフォーム開発が可能です。もちろんこの記事内容にてもiOS, Android両アプリを作り出すことができます。 

では、一番単純な実装手順を記載します

まずはパーツ配置から

  1.  RAD Studioを起動します。(画面はバージョン10.1 Berlin
  2. マルチデバイスアプリケーションを選択(ブログではDelphiを使いますがC++も同じです)
  3. 「空のアプリアプリケーション」を選択して、[OK]をクリックします。
  4. 右下ツールパレットの「System」内「TNotificationCenter」をフォーム上にドロップ 。この不可視コンポーネントがメッセージをだす役割を担います。
  5. 右下ツールパレット「Standard」内「TButton」をフォーム上にドロップ。
  6. 左下にあるプロパティで「Button1」のAlignを「Center」にセットして中央に配置されるようにしておきます。

 

これら設定を終えた状態が下記の図です。

 

次に通知(Notification)を発行させる手続きを記載します。

  1. Button1」をダブルクリックして、ボタンクリックイベント(OnClick)のコードを書きます。
  2. 通知を出すためのコンポーネントTNotificationCenterのパラメータなどをTNotificationクラスを使って設定します。

 

コードは下記をご参照ください。

//Delphi code

procedure TForm1.Button1Click(Sender: TObject);
var
  myNotice: TNotification; //TNotification でパラメータ設定・宣言
begin
  myNotice := NotificationCenter1.CreateNotification; //Try Finally
  try
    myNotice.Name := 'NotificationID';  //通知の識別名
    myNotice.Title := 'NotificationTitle';  //タイトル。iOSでは無視される
    myNotice.AlertBody := 'MultiDeviceDevelopment';  //通知されるメッセージ
    myNotice.Number := 1; //iOSではアイコンにつく通知数、Androidではメッセージにつく通知数
    myNotice.FireDate := Now + EncodeTime(0, 0, 5, 0); //通知のタイマー。ここでは5秒
    NotificationCenter1.ScheduleNotification(myNotice); //通知の発行スケジュールセット
  finally
    myNotice.DisposeOf; //Create Notification したので、ここで破棄
  end;
end;

iOSで通知を使う場合には、通知のパーミッションを有効にしておく必要があります。

 

  1. 右側に表示されているプロジェクトマネージャー内の「ターゲットプラットフォーム」でIOSデバイスをダブルクリックして選択しておきます。
  2. プロジェクトを右クリックして「オプション」を選択します。
  3.  [バージョン情報]内「FMLocalNotificationPermission」の値に「true」を設定します。

 

 

後はビルドしてiOSデバイスかAndroidに配置します。

ボタンを押してAndroidでは五秒後に通知が来ます。iOSではアプリが前面に出ている場合には通知が来ない事にご注意を。ボタンを押してアプリを閉じておくと通知が確認できます。

ロック画面にしておくと、このブログの先頭イメージのように、ロック画面上の通知としてみることができます。

TNotificationCenterコンポーネントだけで簡単に使えますので、お試しください。

より詳細な使い方、さらなるカスタマイズなどは下記の資料をご覧ください。

 

関連資料は下記のリンクをご参考に:

Dockwiki

通知の使用

http://docwiki.embarcadero.com/RADStudio/Berlin/ja/通知の使用

モバイル チュートリアル:通知を使用する(iOS および Android

http://docwiki.embarcadero.com/RADStudio/Berlin/ja/モバイル_チュートリアル:通知を使用する(iOS_および_Android

 

参考となるサンプルコード:

Subversion Repository:

Delphi:
http://sourceforge.net/p/radstudiodemos/code/HEAD/tree/branches/RADStudio_Berlin/Object Pascal/Mobile Snippets/Notifications/SendCancelNotification

C++:
http://sourceforge.net/p/radstudiodemos/code/HEAD/tree/branches/RADStudio_Berlin/CPP/Mobile Snippets/Notifications/SendCancelNotification

 

RAD Studio 10.1 Berlinを導入済でインストール際にSampleコードもインストールしている場合には下記のフォルダにもサンプルがあります。

C: ¥Users¥Public¥Documents¥Embarcadero¥Studio¥18.0¥Samples¥の下の

Delphi
¥Object Pascal¥Mobile Snippets¥Notifications¥SendCancelNotification

C++:
¥CPP¥Mobile Snippets¥Notifications¥SendCancelNotification



About
Gold User, No rank,
Sales consultant - Embarcadero Technologies , at Japan Twitter : @kazaiso

Comments

Check out more tips and tricks in this development video: