В Apple Watch есть 3 варианта уведомлений:
-
Short
- Вы не можете настроить их вообще. -
Static
- Вы можете настроить их на раскадровке. -
Dynamic
- Может настраивать элементы пользовательского интерфейса с новыми данными, не входящими полезная нагрузка уведомления.
Здесь проблема (проект использует Watch OS 1), если приложение не было открыто из Apple Watch
, вместо Dynamic
будет отображаться уведомление Static
, а в журнале будет отображаться ошибка
Слишком много времени, чтобы показать пользовательское уведомление. Возврат к статическому
Я отключил код уведомлений и ViewController
до ничего:
-(void)didReceiveRemoteNotification:(NSDictionary *)remoteNotification withCompletion:(void (^)(WKUserNotificationInterfaceType))completionHandler
{
completionHandler(WKUserNotificationInterfaceTypeCustom);
}
И я все еще получал эту ошибку.
Я должен уточнить, что после того, как приложение работает с часами , по крайней мере,, как только все работает как ожидалось, и Dynamic
Интерфейс уведомлений отображается нормально.
Вещи, которые я проверил дважды:
- Смотреть аккумулятор выше 70%
- Это единственный код в моем
didReceiveRemoteNotification
Подкласс -
WKUserNotificationInterfaceController
подключен к Динамический интерфейс Контроллер в моем файле раскадровки
Я искал документы Apple для проверки этого поведения и не мог найти ничего связанного. Сначала я подумал, что что-то не правильно настроено с моим приложением, но потом обнаружил, что это распространено во всех приложениях Apple, которые я пробовал.
Шаги для воспроизведения:
- Загрузите приложение Apple Watch, которое никогда не было установлено на вашем устройстве, и которое использует динамические уведомления. (Я тестировал это на Telegram и Outlook, например)
- Не открывайте приложение с экрана, только с вашего телефона.
- отправьте свое собственное push-уведомление.
- Уведомление поступит к вашему часу как
Static notification
, а в журнале устройств появится сообщение "Взято слишком долго, чтобы отобразить пользовательское уведомление. Падение назад к статической" ошибке. - Откройте приложение с часами и отправьте другое уведомление. Это будет как
Dynamic
.
После того, как приложение "Наблюдение" открывается, по крайней мере, один раз, когда это очень сложно воспроизвести. Удаление приложения с телефона и просмотр и повторная установка всех отображаемых уведомлений Dynamic
, как следует.
Кто-нибудь испытал это?
Есть ли способ отображать динамические уведомления, не открывая приложение хотя бы один раз на часах?