How do I prevent Alert when App is on Foreground with Incoming OneSignal Push Notification?

后端 未结 4 1854
失恋的感觉
失恋的感觉 2021-01-12 08:33

When my app is in the foreground, there is a alert that appears. How do I prevent this from appearing when receiving push notifications?

相关标签:
4条回答
  • 2021-01-12 08:47

    For Swift 3.0

    // Initialize OngeSignal with Settings for Push Notifications
        OneSignal.initWithLaunchOptions(launchOptions, appId: Constants.OneSignalAppID, handleNotificationReceived: nil, handleNotificationAction: {
            (result) in
            // Do Something with Notification Result
        }, settings: [kOSSettingsKeyInFocusDisplayOption : OSNotificationDisplayType.none.rawValue])
    
    0 讨论(0)
  • 2021-01-12 08:52

    In your didFinishLaunchingWithOptions method of AppDelegate you have to add kOSSettingsKeyInAppAlerts = NO

    [OneSignal initWithLaunchOptions:launchOptions appId:ONESIGNAL_APPID handleNotificationReceived:nil handleNotificationAction:nil
                                settings:@{kOSSettingsKeyInAppAlerts:@NO}];
    
    0 讨论(0)
  • 2021-01-12 09:06

    I achieved it this way. Add the following code in your AppDelegate didFinishLaunchingWithOptions

    OneSignal.inFocusDisplayType = OSNotificationDisplayType.none
    

    on last line in

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey : Any]? = nil) -> Bool {
    
    OneSignal.inFocusDisplayType = OSNotificationDisplayType.none
    return true }
    

    we have these 3 options

    public enum OSNotificationDisplayType : UInt {
    
    
    /*Notification is silent, or app is in focus but InAppAlertNotifications are disabled*/
    case none
    
    
    /*Default UIAlertView display*/
    case inAppAlert
    
    
    /*iOS native notification display*/
    case notification
    }
    

    Here's OneSignal Documentation

    0 讨论(0)
  • 2021-01-12 09:07

    By default OneSignal shows notifications as alert dialogs when the app is infocus. To change this pass kOSSettingsKeyInFocusDisplayOption with the value OSNotificationDisplayTypeNotification or OSNotificationDisplayTypeNone to settings on initWithLaunchOptions.

    0 讨论(0)
提交回复
热议问题