前回は、Unity開発におけるAndroidActivityの拡張方法についてご紹介しました。
今回は、iOS10で新規に追加されたフレームワークについてご紹介したいと思います。
以前の記事でもご紹介しましたが、「UserNotificationsフレームワーク」関連です。
[iOS10]新しいフレームワークを利用してみよう! – 5 –の第2回目となります。
第1回目で、通知エリア内にボタンを表示するところまでは準備できましたので、
実際にボタンタップ時の制御を行う処理を作成していきたいと思います。
それでは、作成していきましょう。
【前提条件】
・開発環境は、「Xcode 8」であること
・以前の記事で作成したプロジェクトを利用すること
【手順1】
前提条件で用意したプロジェクトを開きます。
【手順2】
「ViewController.h」ファイルにフレームワークからの通知を受け取るためにDelegateを記載します。
#import <UIKit/UIKit.h> #import <UserNotifications/UserNotifications.h> @interface ViewController : UIViewController <UNUserNotificationCenterDelegate> - (IBAction)buttonClick:(id)sender; @end
【手順3】
「ViewController.m」ファイルにある「登録」ボタンタップ時の処理内にDelegateを設定します。
割愛している箇所は、以前の記事を参照してください。
- (IBAction)buttonClick:(id)sender { ---------- 割愛 ---------- //delegateを設定する [UNUserNotificationCenter currentNotificationCenter].delegate = self; ---------- 割愛 ---------- }
【手順4】
「ViewController.m」ファイル内に各ボタンがタップされた場合の処理を追記します。
今回は、各ボタンがタップされた場合、ログを出力してみたいと思います。
- (void)userNotificationCenter:(UNUserNotificationCenter *)center didReceiveNotificationResponse:(UNNotificationResponse *)response withCompletionHandler:(void (^)())completionHandler { //ボタン1がタップされた場合 if(YES == [response.actionIdentifier isEqualToString:@"button1"]) { NSLog(@"ボタン1がタップされました。"); } //ボタン2がタップされた場合 else if(YES == [response.actionIdentifier isEqualToString:@"button2"]) { NSLog(@"ボタン2がタップされました。"); } completionHandler(); }
お疲れ様でした。
たった数行で、ボタンタップ時の制御を行うサンプルアプリが完成しました。
それでは、実際に動かしてみましょう。
まず、通知を受信します。
通知エリアを長タップし、通知エリアにボタンが表示されます。
ボタン1をタップします。
ログが表示されることを確認します。
ボタン2をタップします。
ログが表示されることを確認します。
通知エリアにボタンを表示させることによって、ボタン毎に
実施したい機能が行えるため、非常に良い機能だと感じました。
これで、「[iOS10]新しいフレームワークを利用してみよう! – 6 -」は終了となります。
最後までご覧いただき、ありがとうございました。
弊社では全国各地の請負い(ご自宅)で作業協力頂ける、フリーランスエンジニアの方を常時探しております。
ご興味ある方は、お気軽にお問い合わせ下さい。