swift2 iOS 9推送通知未显示,而应用程序是打开的

g0czyy6m  于 2022-11-06  发布在  Swift
关注(0)|答案(3)|浏览(206)
if (deviceToken == nil) {
            print("There is no deviceToken saved yet.")
            let settings = UIUserNotificationSettings(forTypes: [.Alert, .Badge, .Sound], categories: nil)
            UIApplication.sharedApplication().registerUserNotificationSettings(settings)
            UIApplication.sharedApplication().registerForRemoteNotifications()
        }

这是我的许可密码

6ojccjat

6ojccjat1#

如果您的应用程序已打开,则不会显示通知,但应用程序会负责更新用户界面或下载新内容。
实现application(_:didReceiveRemoteNotification:fetchCompletionHandler:)来处理通知,如文档中所述。在这里,您可以创建一个警报,它显示的标题和消息类似于您在接收标准通知时看到的横幅。

5f0d552i

5f0d552i2#

Need to add the completionHandler part, otherwise push notification is received. but it will be not shown.

@available(iOS 10.0, *)
    func userNotificationCenter(_ center: UNUserNotificationCenter,  willPresent notification: UNNotification, withCompletionHandler   completionHandler: @escaping (_ options:   UNNotificationPresentationOptions) -> Void) {
  completionHandler([.alert, .badge, .sound])
}
9ceoxa92

9ceoxa923#

要在运行应用程序时显示警报视图,您必须用途:

func application(_ application: UIApplication,
didReceiveRemoteNotification userInfo: [NSObject : AnyObject])

通知负载在userInfo变量中。你必须决定如何处理它,如何显示它等等。
医生说:
当操作系统发送本地通知或远程通知,而目标应用未在前台运行时,它可以通过警报、图标徽章编号或声音向用户显示通知。如果出现通知警报,用户点击或点击操作按钮(或移动操作滑块),应用程序将启动并调用一个方法来传入本地通知对象或远程通知有效负载。如果在发送通知时应用程序正在前台运行,应用程序委派接收本地或远程通知
这意味着,当应用程序正在运行并收到通知时,不会显示系统警报。

相关问题