当发送后台推送时"content-available": "1"
,对于被用户杀死的应用程序,该应用程序不会启动到后台模式,并且application:didReceiveRemoteNotification:fetchCompletionHandler:
不被称为苹果医生说 https://developer.apple.com/reference/uikit/uiapplicationdelegate/1623013-application:
使用此方法来处理您的应用程序传入的远程通知。 [...]此外,如果您启用了远程通知后台模式,系统会启动您的应用程序(或将其从挂起状态唤醒),并在远程通知到达时将其置于后台状态。但是,如果用户强制退出,系统不会自动启动您的应用程序。
我的问题是:有没有办法访问这个静默推送有效负载下次用户启动应用程序?
我尝试使用launchOptions
of the didFinishLaunchingWithOptions
方法,但它们不包含推送负载。
NSDictionary *userInfo = launchOptions[UIApplicationLaunchOptionsRemoteNotificationKey];
我的用例是,我仅依赖推送通道将数据接收到应用程序,但应用程序不能pull them.
简短的回答是:不,你不能。
您也无法使用 VoIP 推送,唯一的选择是使用带有推送通知服务扩展的常规推送。在您的应用程序和此扩展程序之间共享一个钥匙串,在收到通知时将推送负载保存在钥匙串中,并在应用程序进入前台时检索它。
缺点是您需要向用户呈现视觉通知,但它可以是无声的,并且您可以选择呈现您想要的任何文本(最佳选择将取决于您的应用程序的功能以及此通知的目的是什么)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)