我正在开发支持手表的 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)
})
}
场景
当 iPhone 应用程序在后台并且 iPhone 被锁定并且手表在后台时。如果我从服务器推送推送通知,手表会显示带有两个操作的通知横幅,如果我点击任何一个操作,它工作正常。
当 iPhone 应用程序被杀死并立即锁定 iPhone 如果我发送 pushnotification ,手表会显示带有两个操作的通知横幅,如果我点击任何一个操作它工作正常。
当 iPhone 应用程序被杀死并且 iPhone 被锁定时,让手表和 iPhone 都闲置一个小时。然后我将激活手表并从服务器推送通知,现在手表显示带有两个操作的横幅,现在如果我点击这些操作它不起作用。
如果你们告诉我我必须做的正确事情是什么,那就太好了。