如何在 iOS 的 UAPushNotificationDelegate 上捕获后台静默推送通知?
Posted
技术标签:
【中文标题】如何在 iOS 的 UAPushNotificationDelegate 上捕获后台静默推送通知?【英文标题】:How to capture background silent Push Notifications on UAPushNotificationDelegate for iOS? 【发布时间】:2018-08-22 13:42:34 【问题描述】:我正在尝试在 ios 应用程序上实现 静默推送通知,并且我遵循了适用于 iOS 的 Urban Airship Getting Started,但没有一个示例应用程序可以描述如何实现静默推送通知可以在 UAPushNotificationDelegate 上捕获。我创建了一个测试应用程序,它工作得很好。我目前正在收到简单的推送通知。
我一直在通过 CURLs 命令使用他们的 Push API 端点,它们运行良好。
我的目标是了解几件事:
-
如何创建自定义 Urban Airship 有效载荷以包含静默推送通知
("aps":"content-available" : 1)
如何创建自定义操作
如何实现自定义操作的注册
如何在
UAPushNotificationDelegate 的func receivedBackgroundNotification(_ notificationContent: UANotificationContent, completionHandler: @escaping (UIBackgroundFetchResult) -> Swift.Void)
我希望能够在我的应用程序上实现静默推送通知,我希望社区能帮助我这样做。以下是有关此事的参考 Apple 文档: https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/pushing_updates_to_your_app_silently
以下是其他 UA 客户提出的一些同样问题的问题: https://support.urbanairship.com/hc/en-us/community/posts/115011296606-Differentiate-silent-notifications-from-normal-push-notification https://support.urbanairship.com/hc/en-us/community/posts/360010098392-Custom-actions-while-app-in-background https://support.urbanairship.com/hc/en-us/community/posts/360000003566-Background-notifications-working-on-some-devices-but-not-on-others
【问题讨论】:
【参考方案1】:1) 已回复here
2) 自定义操作:
let customAction : UAAction = UAAction(block: (args, completionHanlder) in
// Do something with args
completionHanlder(UAActionResult.empty())
)
3) 注册动作:
UAirship.shared().actionRegistry.register(customAction, name: "custom_action_name")
4) 实现委托并覆盖方法。如果您希望自定义操作运行,则需要在有效负载中将其定义为 app_defined
操作。
【讨论】:
以上是关于如何在 iOS 的 UAPushNotificationDelegate 上捕获后台静默推送通知?的主要内容,如果未能解决你的问题,请参考以下文章
iOS - 如何在 iOS 应用上跟踪用户对推送通知的选择?
如何在 textField iOS 7 中创建 innerShadow?
如何在 Swift 中同时为 iOS7 和 iOS8 调用 registerForRemoteNotifications?