I'm scheduling local notifications on my WatchOS app, but they are always alerting exactly 13 seconds later than scheduled. I have read other users having the exact same issue but there is no solution anywhere. I'm not sure how one is supposed to write any sort of timer app when they are always coming in delayed. Any idea why this occurs and how to resolve it? For now I am subtracting 13 seconds from the end time, but that's not really a solution I'm happy with. Thanks
First, to explain what is happening here: watchOS and iOS try to coordinate between phone and watch notifications.
The concept here is that if there is a main app and a companion app, they could both be sending a notification, then the notification would alert on both, which is a deviation from how notification mirroring is handled if there is an iOS app but no watch app.
The watch waits for the iOS notification to fire so they can determine if this is the same notification that needs to be deduped, displayed on one device but not the other, or separate notifications to be displayed both.
If there is no notification on the phone, the watch will timeout after 13 seconds and alert anyway.
If you have an iOS companion app, the best solution to this is to send the same notification on both devices simultaneously, and ensuring the UNNotificationRequest.identifier
matches on both notifications. This will let the systems determine how to handle the notification correctly and quickly, and the notification will alert right away.
If you need to coordinate between the watchOS and iOS apps you can use the Watch Connectivity API.
Otherwise, currently this is how the system works, but we do welcome your feedback and enhancement requests about this via https://feedbackassistant.apple.com
To file an enhancement request, use Feedback Assistant. In the “What type of issue are you reporting?” popup, choose Suggestion.
Argun Tekant / DTS Engineer / Core Technologies