应用程序尚未启动时的 Apple 推送通知委托方法

Posted

技术标签:

【中文标题】应用程序尚未启动时的 Apple 推送通知委托方法【英文标题】:Apple push notification delegate method when the application is not launched yet 【发布时间】:2014-07-04 11:00:02 【问题描述】:

这是我的场景:

当时我的应用程序尚未启动,应用程序从 APN 收到推送通知,调用了哪个委托方法;

我读到的:

1.如果应用程序在后台或前台调用 DidReceiveRemoteNotification。

2。如果应用程序尚未启动,那么如果我单击它,将在横幅中收到通知。应用将从 didFinishLaunching 启动并带有通知选项。

【问题讨论】:

***.com/questions/5056689/… 抱歉,具体是什么问题?如果应用程序从通知启动并且当前未运行,它将使用didFinishLaunchingWithOptions: 方法启动。 @nickfalk 我的问题是,如果应用收到推送通知但应用尚未启动,那么将调用哪个委托方法 啊,知道了。抱歉,在这种情况下没有委托调用,因为应用程序作为 Dodo 已死。毕竟,实际上在设备上创建推送通知的不是应用程序,而是操作系统...... 所以如果应用还没有启动,我们就不能增加应用的徽章编号,对吧? 【参考方案1】:

您可以尝试静默推送通知。如果应用程序处于终止状态,将调用静默推送通知。 无声推送将在任何状态下调用委托。 您需要通过:'content-available' => '1' 以及用于静默通知的有效负载。 只是限制是它支持 ios7 及更高版本。

【讨论】:

【参考方案2】:

如果我正确理解了您的问题,那么下面的解决方案 当您的应用程序尚未启动(非可运行状态)时,没有调用委托方法(没有可用的委托方法。)

如果你想在当时收到推送通知后做某事(非可运行状态或挂起状态)IOS 7提供两种方法

" setMinimumBackgroundFetchInterval: " “应用程序:performFetchWithCompletionHandler:”

【讨论】:

好的,如果你是正确的手段(没有可用的委托方法)如果你的应用程序尚未启动,你将如何更新它的徽章编号 提供者在payload中向设备发送badge时,ios系统会自动更新badge。您需要在didfinishLaunchingwithOption方法中将badge number清0。

以上是关于应用程序尚未启动时的 Apple 推送通知委托方法的主要内容,如果未能解决你的问题,请参考以下文章

PHP:如何向 Apple 设备发送推送通知

推送通知权限

如果应用程序处于后台模式,则为推送通知调用啥委托

使用推送通知启动时应用程序崩溃

在 iOS 8 中取消注册推送通知

在 Apple Watch 上接收来自 iCloud 的推送通知