我是WatchKit开发的新手。我想显示一条消息,无论当前正在使用什么应用程序或手表是否处于活动状态,例如内置的Timer应用程序如何显示标签“Timer Done”。然后,用户应该能够单击“确定”按钮并关闭该消息。
我已尝试同时使用警报和模态视图,但以编程方式显示它们仍需要我的应用处于活动状态。使用通知系统不是一个可行的解决方案,因为这将依赖于iPhone。
我已经坚持了好几个小时,任何见解都会有所帮助,谢谢。
答案 0 :(得分:0)
您需要首先在iOS应用中询问权限:
UNUserNotificationCenter.current().requestAuthorization(options: [.alert,.badge,.sound])
{ (granted, error) in
if !granted
{
print("User did not give permissions to send notitications...")
}
}
然后在你的watchOS应用程序中你可以在将来的某个时间创建一个通知,确保你给它一个UUID(这可能是watchOS3中的一个错误):
let content: UNMutableNotificationContent = UNMutableNotificationContent()
content.title = "Title"
content.subtitle = "Subtitle"
content.body = "message"
content.sound = UNNotificationSound.default()
content.categoryIdentifier = "aCategory"
let trigger = UNTimeIntervalNotificationTrigger(timeInterval: duration, repeats: false)
let id: String = WatchNotify.getUUID()
let request = UNNotificationRequest.init(identifier: id,
content: content,
trigger: trigger)
UNUserNotificationCenter.current().add(request)
{
(error) in // ...
}
....
class func getUUID() -> String
{
let uuidObj = CFUUIDCreate(nil)
let uuidString = CFUUIDCreateString(nil, uuidObj)!
return uuidString as String
}