2016-09-20 54 views
0

我在工作推送通知,并且我已经完成了设置推送通知的所有步骤。UILocalNotifcation未在swift 2.0中被触发

我可以在后台应用程序接收通知,但在前台应用程序登陆didReceiveRemoteNotification但它没有触发。

这里我的代码在AppDelegate.swift

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { 
     let notificationSettings = UIUserNotificationSettings(forTypes: [.Badge, .Alert, .Sound], categories: nil) 
     application.registerUserNotificationSettings(notificationSettings) 
} 

func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject], fetchCompletionHandler completionHandler: (UIBackgroundFetchResult) -> Void) { 
     if application.applicationState == UIApplicationState.Active { 
      let localNotification = UILocalNotification() 
      let date = NSDate(timeIntervalSinceNow: 10) 
      localNotification.fireDate = date 
      let timeZone = NSTimeZone.localTimeZone() 
      localNotification.timeZone = timeZone 
      localNotification.alertBody = "Sample Notification Body" 
      localNotification.userInfo = userInfo 
      print(localNotification) 
      localNotification.applicationIconBadgeNumber = UIApplication.sharedApplication().applicationIconBadgeNumber + 1 
      UIApplication.sharedApplication().scheduleLocalNotification(localNotification) 
     } 
    } 

我在做什么错误?

在此先感谢

回答

1

我怀疑什么,你想显示远程通知,当应用程序使用本地通知是有效的。

那么,无论是本地通知还是远程,您都无法在应用程序处于活动状态时看到任何UI警报,而是相应地调用本地或远程通知的委托方法。

但是,iOS 10增加了在应用程序内查看它的功能。这里的讨论:https://stackoverflow.com/a/37844312/593709

对于显示预-IOS-10的任何警告,而您的应用程序被激活,你需要使用UIAlertController或一些其他类似的实施MPNotificationView

0

当应用程序处于Foreground并正在运行时,它不显示通知标题。横幅警报仅在应用程序处于后台(不活动状态)或根本没有运行时显示。委托方法

application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject], fetchCompletionHandler completionHandler: (UIBackgroundFetchResult) -> Void) 

被调用远程(推送)通知

application(application: UIApplication, didReceiveLocalNotification notification: UILocalNotification) 

被调用本地通知

您可以使用任何第三方库bryx-inc/BRYXBanner为您的通知警报消息显示标题。代表方法didReceiveRemoteNotification可用于在横幅视图中更新徽章图标和显示消息。