触发 Apple Watch 通知
Posted
技术标签:
【中文标题】触发 Apple Watch 通知【英文标题】:Firing apple watch notification 【发布时间】:2015-04-22 04:56:29 【问题描述】:我有一个待办事项应用程序,我需要在预定的待办事项时间向手表显示通知。我该怎么做呢?我读过 ios 本地通知会自动在手表中触发通知。是否可以?如果是,我需要额外添加任何代码吗?
【问题讨论】:
是的,你是正确的@Naveen。 “操作系统负责在预定时间发送本地通知;该应用程序不必运行就可以发生这种情况。” -Apple Documentation。您需要为本地通知添加代码。通过here 更清楚地了解特定的待办事项。希望这对您有所帮助。 感谢@Rajat。当 iPhone 应用触发本地通知时,我们为手表应用制作的通知场景会出现吗? 是的,它将显示在手表上。 感谢您的信息。这解决了我的问题。 【参考方案1】:在 watchOS 3 中,您不再需要使用手机来安排通知。
您现在可以使用新的UserNotifications 框架直接在手表上安排本地通知。这些通知只会出现在手表上并由手表处理。
WWDC 2016 Introduction to Notifications 会议介绍了如何使用不同类型的触发器来触发待办事项通知,例如:
时间间隔触发
// In 2 minutes from now
UNTimeIntervalNotificationTrigger(timeInterval: 120, repeats: false)
// Repeat every hour starting now
UNTimeIntervalNotificationTrigger(timeInterval: 3600, repeats: true)
日历触发器
let dateComponents = DateComponents()
// Configure dateComponents
UNCalendarNotificationTrigger(dateMatching: dateComponents, repeats: false)
该课程还介绍了如何在手表上处理可操作的通知。
【讨论】:
【参考方案2】:UILocalNotification
的概念在 WatchKit 中没有改变。唯一改变的是 iOS 现在可以决定是否向 iPhone 或 Watch 发送本地(或远程)通知。但是,没有编程方式来控制这些设备中的哪一个实际显示通知。
要从 WatchKit 应用程序安排 UILocalNotification
需要使用类似 WKInterfaceController
上的 openParentApplication:reply:
类方法让 iPhone 应用程序执行实际安排。这是因为 WatchKit 无权访问用于安排本地通知的类 UIApplication
。
【讨论】:
如果我在iOS应用中设置本地通知,通知会自动显示到手表上吗? 仅当 iOS 决定在手表上显示它时。请记住...您无法控制通知的显示位置。 必须锁定设备才能在您的 Apple Watch 中接收通知 或者,为了调试,您可以进入 iPhone 上的 Watch 配套应用并禁用常规/手腕检测。以上是关于触发 Apple Watch 通知的主要内容,如果未能解决你的问题,请参考以下文章
Companion Apple Watch App 本地通知延迟?
如何将用户从 Apple Watch 通知转移到 Apple Watch App?