Действия с уведомлением Apple Watch не работают, когда приложение-компаньон iPhone прекращает работу Watch OS 5.3.2
Я работаю над приложением для iOS, которое поддерживает часы, а также мои опасения.
ОС для часов - 5.3.2 и iOS 13.1
У меня проблема с действиями уведомлений в приложении для часов. когда приложение iPhone закрывается, и если я получаю уведомление в часах, если я нажимаю на действие, ничего не происходит.
Я ретранслирую push-уведомление, а для действий с уведомлением пользователя я регистрируюсь для уведомления пользователя.
как показано ниже
// 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 заблокирован и часы находятся в фоновом режиме. Если я нажимаю push-уведомление с сервера, часы отображают баннер с двумя действиями, если я нажимаю какое-либо действие, все работает нормально.
когда приложение iPhone убито, а iPhone сразу заблокирован. Если я отправлю push-уведомление, часы отобразят баннер с двумя действиями, если я коснусь любого из действий, все будет нормально.
Когда приложение iPhone убито и iPhone заблокирован, часы и iPhone оставались бездействующими в течение часа. затем я активирую часы и отправлю уведомление с сервера, теперь часы отображают баннер с двумя действиями, теперь, если я нажимаю на действия, они не работают.
Было бы здорово, если бы вы сказали мне, что я должен делать правильно.
1 ответ
Чтобы гарантировать выполнение действий в третьем варианте использования, убедитесь, что для полезной нагрузки уведомления должно быть указано значение YES для свойства contentAvailable. Чтобы приложение запускалось в фоновом режиме. И он соответственно обновит действия пользователя по уведомлению.