【发布时间】:2019-01-08 19:19:44
【问题描述】:
基本上通过通知的操作按钮打开推送通知所属的应用程序。
我知道点击通知本身会默认打开应用程序,但我想在处理操作数据后对操作按钮实现相同的行为。我正计划通过与已定义的 URL 方案进行深度链接来实现这一点(理论上,可以正常工作),但这可能是一种更好的方法/方式。还是根本不可能?
【问题讨论】:
标签: ios swift push-notification mobile-application
基本上通过通知的操作按钮打开推送通知所属的应用程序。
我知道点击通知本身会默认打开应用程序,但我想在处理操作数据后对操作按钮实现相同的行为。我正计划通过与已定义的 URL 方案进行深度链接来实现这一点(理论上,可以正常工作),但这可能是一种更好的方法/方式。还是根本不可能?
【问题讨论】:
标签: ios swift push-notification mobile-application
如果您正在创建动作 UNNotificationAction(identifier: , 标题:, 选项:UNNotificationActionOptions.foreground)
为 options 参数选择 UNNotificationActionOptions.foreground,当点击操作时它会启动应用程序。有关更多信息,请查看 foreground 和 UNNotificationActionOptions 的 Apple 文档
要在应用午餐后添加一些任务,请在应用委托中使用userNotificationCenter(_:didReceive:withCompletionHandler:) 委托方法。
【讨论】:
您是在处理来自 NotificationContentExtension 还是来自 UserNotificationCenterDelegate 的通知操作?
在 iOS 10+ 中,ContentExtensions 在其动作处理委托方法didReceive(UNNotificationResponse, completionHandler: (UNNotificationContentExtensionResponseOption) -> Void) 中提供了一个完成处理程序。该完成处理程序可让您指定通知是应被解除、保持打开状态(适用于持续通知,如媒体播放器),还是应在应用加载时解除,这听起来像您的情况。
从 iOS 12 开始,ContentExtension 还包括一个执行默认应用加载行为的方法(通过其继承的 NSExtensionContext 引用)。这是NSExtensionContext#performNotificationDefaultAction()。还有一种相应的方法可以静默关闭通知。
【讨论】: