当您的应用程序在前台时,如何在 ios 10 中生成本地通知?当您的应用程序在前台时,它就不起作用

Posted

技术标签:

【中文标题】当您的应用程序在前台时,如何在 ios 10 中生成本地通知?当您的应用程序在前台时,它就不起作用【英文标题】:how to generate local notification in ios 10 when your app in forground? When your app in forground then it's not work 【发布时间】:2016-12-14 08:56:46 【问题描述】:

我在我的应用程序中执行以下步骤

在我的 appdelegate

#import <UserNotifications/UserNotifications.h>


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
    // Override point for customization after application launch.


    UNUserNotificationCenter* center = [UNUserNotificationCenter currentNotificationCenter];
      center.delegate = (id)self;

    [center requestAuthorizationWithOptions:(UNAuthorizationOptionAlert + UNAuthorizationOptionSound)
                          completionHandler:^(BOOL granted, NSError * _Nullable error) 


                              // Enable or disable features based on authorization.
                          ];







    return YES;

在我的 viewcontroller 中生成本地通知的代码

-(IBAction)btnclicked:(id)sender 

    UNMutableNotificationContent* content = [[UNMutableNotificationContent alloc] init];
    content.title = @"gg";
     content.subtitle = @"ggg";
    content.body = @"hhh";
    content.sound = [UNNotificationSound defaultSound];

    // Deliver the notification in five seconds.
    UNTimeIntervalNotificationTrigger* trigger = [UNTimeIntervalNotificationTrigger
                                                  triggerWithTimeInterval:5 repeats:NO];
    UNNotificationRequest* request = [UNNotificationRequest requestWithIdentifier:@"2"
                                                                          content:content trigger:trigger
                                      ];

    // Schedule the notification.
    UNUserNotificationCenter* center = [UNUserNotificationCenter currentNotificationCenter];
    [center addNotificationRequest:request withCompletionHandler:^(NSError * _Nullable error) 
        NSLog(@"hii");
    ];






现在,当我的应用在 前台 未生成通知时。

我在 ios 9 中使用

 UILocalNotification* localNotification = [[UILocalNotification alloc] init];
    localNotification.soundName = @"Default";
    localNotification.alertBody = @"my notification;)";
    localNotification.fireDate = [NSDate date];
    localNotification.category = @"Email";
    localNotification.repeatInterval = kCFCalendarUnitDay;
    [[UIApplication sharedApplication] scheduleLocalNotification:localNotification];

此代码在 ios 9 中有效,但在 ios 10 中 UILocalNotification 已弃用。

那么当您的应用在前台时,如何在 ios 10 中生成本地通知?

【问题讨论】:

我可以快速向您发布解决方案,好吗? UILocalNotification is deprecated in iOS10的可能重复 @Mingebag 没关系。 【参考方案1】:

尝试在iOS10中与UNUserNotificationCenterDelegate一起使用

iOS 10 添加了UNUserNotificationCenterDelegate 协议,用于在您的应用处于前台时处理通知。

Hope this will help

【讨论】:

我已经在使用用户通知框架。我的问题是当您的应用在前台时如何在 ios 10 中生成本地通知?【参考方案2】:

要在应用程序处于前台时显示横幅消息,请使用以下方法。

iOS 10,斯威夫特 3:

// 应用在前台收到推送通知时调用该方法

func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) 

    completionHandler(
       [UNNotificationPresentationOptions.alert,
        UNNotificationPresentationOptions.sound,
        UNNotificationPresentationOptions.badge])

【讨论】:

willPresent 通知:在本地通知中工作?

以上是关于当您的应用程序在前台时,如何在 ios 10 中生成本地通知?当您的应用程序在前台时,它就不起作用的主要内容,如果未能解决你的问题,请参考以下文章

当您的 Web 应用程序在后台时,Firestore 实时侦听器

iOS 应用程序启动时要做什么

当您的数据源是 Results 对象时,如何在表格视图中移动行?

手机重启后远程通知未发送到我的应用程序

当应用程序在前台时收到 Twilio 通知警报

应用在前台时如何触发苹果推送通知事件?