コンテンツにスキップ

フォアグランド状態での受信

アプリがフォアグランド状態のときにも通知を受信することが可能です。 そのときの通知の挙動を設定できます。

// Class RFApp
static func willPresentNotification(options: UNNotificationPresentationOptions = [.alert, .badge, .sound], completionHandler: @escaping (UNNotificationPresentationOptions) -> Swift.Void)
// Class RFApp
+ willPresentNotification:completionHandler:
パラメータ 内容
options 通知受信時の挙動を指定。
UNNotificationPresentationOptions を指定
completeHandler RFNotificationDelegate.willPresentNotificationに渡されたcompleteHandlerを指定


実装例

Swift

AppDelegate.swift

extension AppDelegate : UNUserNotificationCenterDelegate {

    func userNotificationCenter(_ center: UNUserNotificationCenter,
                                willPresent notification: UNNotification,
                                withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
        //アプリがフォアグラウンドにある場合に通知を受信すると呼ばれる

        // optionsに指定する値によって挙動を変えられる
        // .badge : アプリアイコンにバッジを表示
        // .alert : アラートを表示する
        // .sound : 音を鳴らす
        // このメソッドを呼ばない場合は何も起こらない。
        RFApp.willPresentNotification(options: [.badge, .alert, .sound], completionHandler: completionHandler)

    }
}
Objective-C

AppDelegate.h

#import <UserNotifications/UserNotifications.h>

// RFNotificationDelegateプロトコルを追加する
@interface AppDelegate : UIResponder <UIApplicationDelegate, RFNotificationDelegate>

AppDelegate.m

- (void)willPresentNotificationWithCenter:(UNUserNotificationCenter *)center notification:(UNNotification *)notification withCompletionHandler:(void (^)(UNNotificationPresentationOptions))completionHandler
{
    //アプリがフォアグラウンドにある場合に通知を受信すると呼ばれる

    // optionsに指定する値によって挙動を変えられる
    // UNNotificationPresentationOptionBadge : アプリアイコンにバッジを表示
    // UNNotificationPresentationOptionAlert : アラートを表示する
    // UNNotificationPresentationOptionSound : 音を鳴らす
    // このメソッドを呼ばない場合は何も起こらない。
    UNNotificationPresentationOptions options = UNNotificationPresentationOptionAlert|UNNotificationPresentationOptionBadge|UNNotificationPresentationOptionSound;
    [RFApp willPresentNotification:options completionHandler:completionHandler];
}