首页 > 解决方案 > 当 iPhone 配套应用程序终止时,Apple Watch 通知操作不起作用 watch OS 5.3.2

问题描述

我正在开发支持手表的 iOS 应用程序,以下是我的担忧。

观看操作系统 - 5.3.2 和 iOS 13.1

我在手表应用程序中遇到通知操作问题。当 iPhone 应用程序终止时,如果我在 watch 中收到通知,如果我点击操作,则没有任何反应。

我正在转发推送通知和用户通知操作,我正在注册用户通知。

如下

 // this I will call in iPhone app code in did finishlaunching with options.

   func registerForPushNotifications(withUserInfo userInfo: [AnyHashable: Any]?) {
        if #available(iOS 10.0, *) {
            self.requestAuthorization(withUserInfo: userInfo)
        } else {
            registerUserNotificationSettings(withUserInfo: userInfo)
            UIApplication.shared.registerForRemoteNotifications()
        }
    }

  func registerUserNotificationSettings() {
        let approveAction = UIMutableUserNotificationAction()
        approveAction.title = NSLocalizedString("Approve", comment: "Notification approve button title")
        approveAction.identifier = "approve"
        approveAction.isDestructive = false
        approveAction.activationMode = .background
        approveAction.isAuthenticationRequired = true

        let denyAction = UIMutableUserNotificationAction()
        denyAction.title = NSLocalizedString("Deny", comment: "Notification deny button title")
        denyAction.identifier = "deny"
        denyAction.isDestructive = true
        denyAction.activationMode = .background
        denyAction.isAuthenticationRequired = true

        let signInCategory = UIMutableUserNotificationCategory()
        signInCategory.setActions([approveAction, denyAction], for: .default)
        signInCategory.identifier = "pushotp"

        let categories = NSSet(object: signInCategory) as? Set<UIUserNotificationCategory>

        let settings = UIUserNotificationSettings(types: [.badge, .sound, .alert], categories: categories)
        DispatchQueue.main.async(execute: {
            UIApplication.shared.registerUserNotificationSettings(settings)
        })
    }

场景

  1. 当 iPhone 应用程序在后台并且 iPhone 被锁定并且手表在后台时。如果我从服务器推送推送通知,手表会显示带有两个操作的通知横幅,如果我点击任何一个操作,它工作正常。

  2. 当 iPhone 应用程序被杀死并立即锁定 iPhone 如果我发送 pushnotification ,手表会显示带有两个操作的通知横幅,如果我点击任何一个操作它工作正常。

  3. 当 iPhone 应用程序被杀死并且 iPhone 被锁定时,让手表和 iPhone 都闲置一个小时。然后我将激活手表并从服务器推送通知,现在手表显示带有两个操作的横幅,现在如果我点击这些操作它不起作用。

如果你们告诉我我必须做的正确事情是什么,那就太好了。

标签: iosnotificationsapple-push-notificationsapple-watchnotification-action

解决方案


为确保在第 3 个用例中执行操作,请确保Notification Payload应具有contentAvailable属性为YES。这样应用程序将在后台启动。并且它将相应地更新通知用户操作。


推荐阅读