2016-08-11 3 views
1

私はWatchKit開発の新人です。内蔵のTimerアプリケーションで「Timer Done」というラベルがどのように表示されているかなど、現在使用されているアプリケーションや時計がアクティブであるかどうかに関係なく、メッセージを表示したいと考えています。ユーザーは「OK」ボタンをクリックしてメッセージを閉じることができます。メッセージを上に表示する方法は?

私はアラートとモーダルビューの両方を使用しようとしましたが、それらをプログラムで表示するには私のアプリをアクティブにする必要があります。通知システムを使用することは、iPhoneに依存するため、実行可能な解決策ではありません。

私は何時間もこれに取り組んできましたが、どんな洞察も役に立ちます。ありがとうございました。

+1

あなたはWatchOS 3.0府であなたの時計アプリからローカルの通知を投稿することができますWatchOS2.0にないhttps://developer.apple.com/reference/usernotifications – Paulw11

答えて

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 
} 
関連する問題