Ios Swift:应用程序运行时如何发送商店推送通知?
这是我在iOS应用程序中接收推送通知时处理推送通知的Ios Swift:应用程序运行时如何发送商店推送通知?,ios,swift,push-notification,apple-push-notifications,Ios,Swift,Push Notification,Apple Push Notifications,这是我在iOS应用程序中接收推送通知时处理推送通知的didReceiveMemoteNotification方法: func showNotificationDetails(userInfo: [NSObject : AnyObject], application:UIApplication) { print("showNotificationDetails") let storyboard = UIStoryboard(name: "Main", bundle: nil)
didReceiveMemoteNotification
方法:
func showNotificationDetails(userInfo: [NSObject : AnyObject], application:UIApplication) {
print("showNotificationDetails")
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let notificationController = storyboard.instantiateViewControllerWithIdentifier("DynamicEventsViewController") as! DynamicEventsViewController
notificationController.isLoadedFromNotification = true
notificationController.eventTitle = userInfo["aps"]!["alert"] as! String
notificationController.eventDescription = userInfo["aps"]!["message"] as! String
notificationController.isLoadedFromNotification = true
if let tabBarController = self.window?.rootViewController {
tabBarController.presentViewController(notificationController, animated: true, completion: nil)
}
application.applicationIconBadgeNumber -= 1
//application.cancelAllLocalNotifications()
}
func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject]) {
let state:UIApplicationState = application.applicationState
if (state == UIApplicationState.Inactive || state == UIApplicationState.Background) {
self.showNotificationDetails(userInfo, application: application)
}
}
问题在于,如果应用程序正在运行且通知到达,则不会存储该应用程序并将其删除,以便用户以后无法看到它。在用户阅读通知之前,我应该如何以正确的方式保持通知?首先,不要像Divyesh建议的那样将其存储在NSUserDefaults中。基于名称和文档的快速阅读,这显然不是类的用途 其次,你的老板错了,你需要能够向他解释这一点。关于推送通知的文档非常清楚地说明了每个状态下发生的情况。如果应用程序位于前台,收到通知,并且您的标志表明用户需要警报,那么您应该显示警报
最后,如果您真的想存储它们,那么您需要使用核心数据或plist之类的东西。请记住,虽然通知不应该保存真实数据,但它们只会给您一些类型的标志,然后您可以根据这些标志采取行动 首先,不要像Divyesh建议的那样将其存储在NSUserDefaults中。基于名称和文档的快速阅读,这显然不是类的用途 其次,你的老板错了,你需要能够向他解释这一点。关于推送通知的文档非常清楚地说明了每个状态下发生的情况。如果应用程序位于前台,收到通知,并且您的标志表明用户需要警报,那么您应该显示警报
最后,如果您真的想存储它们,那么您需要使用核心数据或plist之类的东西。请记住,虽然通知不应该保存真实数据,但它们只会给您一些类型的标志,然后您可以根据这些标志采取行动 当应用程序启动时,你可以用通知消息显示警报。这正是我所做的,但我的老板不希望我这样做,因为他说这是不正确的!只需存储通知数据,就可以使用本地通知。当应用程序进入后台时,请检查是否有可用的存储通知,然后显示本地通知。请编写一些代码示例?我应该在哪里存储,如何存储?您可以将其存储在NSUserdefaultyou可以在应用程序启动时显示带有通知消息的警报这正是我所做的,但我的老板不希望我这样做,因为他说这不正确!只需存储通知数据,就可以使用本地通知。当应用程序进入后台时,请检查是否有可用的存储通知,然后显示本地通知。请编写一些代码示例?我应该把它放在哪里,怎么放?你可以把它放在你的房间里。你完全正确,但是我恐怕不能对他做任何其他的事情。我发现的解决方案是,当应用程序处于活动状态时收到的通知存储在全局数组中。然后,一旦应用程序进入后台状态(从任何视图控制器),这些通知将被安排为本地通知,以便用户可以看到横幅警报。无论如何,有些应用程序,如Whatsapp或iMessage,即使在新消息到达时应用程序正在运行,也会显示横幅警报。他们怎么能做到呢?他们使用第三方框架吗?你完全正确,但恐怕我不能对他做任何其他事情。我发现的解决方案是,当应用程序处于活动状态时收到的通知存储在全局数组中。然后,一旦应用程序进入后台状态(从任何视图控制器),这些通知将被安排为本地通知,以便用户可以看到横幅警报。无论如何,有些应用程序,如Whatsapp或iMessage,即使在新消息到达时应用程序正在运行,也会显示横幅警报。他们怎么能做到呢?他们是否使用第三方框架?