前回は、REST APIで取得したデータをhtmlへ反映させる方法についてご紹介しました。
今回は、iOS10で新規に追加されたフレームワークについてご紹介したいと思います。
以前の記事でもご紹介しましたが、「UserNotificationsフレームワーク」関連です。
今回は、通知エリアにテキストフィールドを表示させるサンプルアプリを作成したいと思います。
それでは、作成していきましょう。
【前提条件】
・開発環境は、「Xcode 8」であること
・以前の記事で作成したプロジェクトを利用すること
【手順1】
前提条件で用意したプロジェクトを開きます。
【手順2】
「ViewController.m」ファイルにある「登録」ボタンタップ時の処理内にボタンを表示する処理を追記します。
割愛している箇所は、以前の記事を参照してください。
- (IBAction)buttonClick:(id)sender { ---------- 割愛 ---------- /************************************************************************************/ //通知エリア内にボタンを設定する //ボタン3 UNTextInputNotificationAction *button3Action = [UNTextInputNotificationAction actionWithIdentifier:@"button3" title:@"ボタン3" options:UNNotificationActionOptionNone textInputButtonTitle:@"返信する" textInputPlaceholder:@"文字を入力"]; /************************************************************************************/ //カテゴリを登録する UNNotificationCategory *category = [UNNotificationCategory categoryWithIdentifier:@"sampleNotificationCategory" actions:@[button1Action, button2Action, button3Action] intentIdentifiers:[NSArray array] options:UNNotificationCategoryOptionNone]; ---------- 割愛 ---------- }
【手順3】
今回は、入力した文字列をログで出力してみたいと思います。
割愛している箇所は、以前の記事を参照してください。
- (void)userNotificationCenter:(UNUserNotificationCenter *)center didReceiveNotificationResponse:(UNNotificationResponse *)response withCompletionHandler:(void (^)())completionHandler { ---------- 割愛 ---------- //ボタン3がタップされた場合 else if(YES == [response.actionIdentifier isEqualToString:@"button3"]) { UNTextInputNotificationResponse *inputNotification = (UNTextInputNotificationResponse *)response; NSLog(@"ボタン3がタップされました。"); NSLog(@"入力された文字列は、%@", inputNotification.userText); } ---------- 割愛 ---------- }
お疲れ様でした。
それでは、実際に動かしてみましょう。
まず、通知を受信します。
通知エリアを長タップし、通知エリアにボタンが表示されます。
ボタン3をタップすると、テキストフィールドが表示されます。
任意の文字列を入力し、「返信する」ボタンをタップします。
ログが表示されることを確認します。
通知エリア上にテキストフィールドを表示させることにより、アプリを
わざわざ起動せずに文字入力が行えるので、チャットアプリに最適ですね。
これで、「[iOS10]新しいフレームワークを利用してみよう! – 7 -」は終了となります。
最後までご覧いただき、ありがとうございました。
弊社では全国各地の請負い(ご自宅)で作業協力頂ける、フリーランスエンジニアの方を常時探しております。
ご興味ある方は、お気軽にお問い合わせ下さい。