当您的应用处于打开状态且在前台时,显示股票iOS通知横幅吗?

当Apple的官方iOS Messages应用程序打开并在前台运行时,来自其他联系人的新消息会触发原始的本地iOS通知警报横幅。参见下图。


在App Store的第三方应用程序中有可能吗?当您的应用处于打开状态且处于前台时,您的应用的本地通知和/或推送通知?


测试我的应用程序时,会收到通知,但不会显示iOS警报UI。


但是,这种行为是出现在苹果的官方消息应用程序:


消息处于打开状态并且位于前台。 仍显示通知警报。


在本地和远程通知编程指南说:


当操作系统传递本地通知或远程通知并且目标应用未在前台运行时,它可以通过警报,图标徽章编号或声音向用户显示通知。


如果在传递通知时应用程序在前台运行,则应用程序委托会接收本地或远程通知。


因此,是的,我们可以在前台接收通知数据。但是我看不到呈现本机iOS通知警报UI的方法。


-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo 

{

    // I know we still receive the notification `userInfo` payload in the foreground.

    // This question is about displaying the stock iOS notification alert UI.


    // Yes, one *could* use a 3rd party toast alert framework. 

    [self use3rdPartyToastAlertFrameworkFromGithub]

}

然后,Messages是否在前台使用私有API来显示警报?


对于这个问题的目的,请不要提出任何第三方“敬酒”,弹出警报在github上或者等我只是有兴趣,如果这可以用做库存,提供原生iOS本地或推送通知提醒用户界面,而你应用程序是打开的,并且处于前台。


噜噜哒
浏览 714回答 3
3回答

动漫人物

要在应用程序处于前台状态时显示横幅消息,请使用以下方法。iOS 10以上版本,Swift 3以上版本:func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {    completionHandler([.alert, .badge, .sound])}
打开App,查看更多内容
随时随地看视频慕课网APP