11 カテゴリ配信
カテゴリ配信とは、配信するお知らせにカテゴリ(文字列)を設定して配信する機能です。
カテゴリには、「news」「weather」などの任意の文字列を設定できます。
これにより、受信したお知らせにおいて、カテゴリによって振る舞いを変えることができます。
たとえば、お知らせ一覧画面 A では「news」のみ、お知らせ一覧画面 B では「weather」のみを表示するといったことなどが実現可能です。
11.1 お知らせ一覧画面に news のみ表示したい
お知らせ一覧画面用のクラス(PopinfoListViewController)のインスタンスを以下のように生成し、category プロパティに@”news”という文字列をあてます。
これによって、このお知らせ一覧画面には、「news」カテゴリの配信のみが表示されます。
category プロパティは、お知らせ一覧画面のビューを更新する際に、設定したカテゴリのお知らせのみに絞って表示するという役割を持っています。
PopinfoListViewController *newsListVC = [[PopinfoListViewController alloc] initWithNibName:@"PopinfoListViewController" bundle:[NSBundle mainBundle]];
newsListVC.category = @"news";
let newsListVC = PopinfoListViewController(nibName: "PopinfoListViewController", bundle: Bundle.main)
newsListVC.category = "news"
11.2 届いたお知らせのカテゴリに応じて、表示するお知らせ一覧を動的に変えたい
PopinfoReceiver デリゲートメソッド popinfoReceiver: didReceivePopinfoMessage: category: result: を記述してください。
プッシュ通知受信後、サーバーとの通信が完了したときに、このデリゲートメソッドがコールされます。
サーバーとの通信が完了しているため、このデリゲートメソッドの引数の category には届いたお知らせのカテゴリ文字列が入っています。
以下のサンプルのように、カテゴリに応じてお知らせ一覧画面に表示するお知らせのカテゴリを変える処理を記述してください。
引数の messageId は、届いたお知らせのメッセージ ID です。
引数の result はサーバーとの通信の結果であり、通信が成功した時は YES、失敗した時は NO が入ります。
- (void)popinfoReceiver:(PopinfoReceiver *)popinfoReceiver didReceivePopinfoMessage:(NSInteger)messageId category:(NSString *)category result:(BOOL)result
{
// PopinfoListViewController の category プロパティに category を代入し、
// お知らせ一覧画面に表示するお知らせをそのカテゴリに絞り込む。
listVC.category = category;
}
func popinfoReceiver(_ popinfoReceiver: PopinfoReceiver, didReceivePopinfoMessage messageId: Int, category: String, result: Bool) {
// PopinfoListViewController の category プロパティに category を代入し、
// お知らせ一覧画面に表示するお知らせをそのカテゴリに絞り込む。
listVC.category = category
}