【问题标题】:Open App from Push-Notification's Action Buttons in iOS 11+ (Swift)?在 iOS 11+(Swift)中从推送通知的操作按钮打开应用程序?
【发布时间】:2019-01-08 19:19:44
【问题描述】:

基本上通过通知的操作按钮打开推送通知所属的应用程序。

我知道点击通知本身会默认打开应用程序,但我想在处理操作数据后对操作按钮实现相同的行为。我正计划通过与已定义的 URL 方案进行深度链接来实现这一点(理论上,可以正常工作),但这可能是一种更好的方法/方式。还是根本不可能?

【问题讨论】:

    标签: ios swift push-notification mobile-application


    【解决方案1】:

    如果您正在创建动作 UNNotificationAction(identifier: , 标题:, 选项:UNNotificationActionOptions.foreground)

    为 options 参数选择 UNNotificationActionOptions.foreground,当点击操作时它会启动应用程序。有关更多信息,请查看 foregroundUNNotificationActionOptions 的 Apple 文档

    要在应用午餐后添加一些任务,请在应用委托中使用userNotificationCenter(_:didReceive:withCompletionHandler:) 委托方法。

    【讨论】:

      【解决方案2】:

      您是在处理来自 NotificationContentExtension 还是来自 UserNotificationCenterDelegate 的通知操作?

      在 iOS 10+ 中,ContentExtensions 在其动作处理委托方法didReceive(UNNotificationResponse, completionHandler: (UNNotificationContentExtensionResponseOption) -> Void) 中提供了一个完成处理程序。该完成处理程序可让您指定通知是应被解除、保持打开状态(适用于持续通知,如媒体播放器),还是应在应用加载时解除,这听起来像您的情况。

      从 iOS 12 开始,ContentExtension 还包括一个执行默认应用加载行为的方法(通过其继承的 NSExtensionContext 引用)。这是NSExtensionContext#performNotificationDefaultAction()。还有一种相应的方法可以静默关闭通知。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-10-24
        • 1970-01-01
        相关资源
        最近更新 更多