如何在顶部显示消息?

时间:2016-08-11 11:43:50

标签: ios swift user-interface apple-watch

我是WatchKit开发的新手。我想显示一条消息,无论当前正在使用什么应用程序或手表是否处于活动状态,例如内置的Timer应用程序如何显示标签“Timer Done”。然后,用户应该能够单击“确定”按钮并关闭该消息。

我已尝试同时使用警报和模态视图,但以编程方式显示它们仍需要我的应用处于活动状态。使用通知系统不是一个可行的解决方案,因为这将依赖于iPhone。

我已经坚持了好几个小时,任何见解都会有所帮助,谢谢。

1 个答案:

答案 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
}