我需要編寫哪些代碼才能從手錶應用程序本身觸發手錶套件通知?例如,如果我將手錶故事板中的按鈕作爲動作連接到WatchInterfaceController,然後按下時它會在手錶上觸發通知。如何觸發WK通知
Q
如何觸發WK通知
-1
A
回答
0
爲了測試手錶通知,您必須先創建一個新的構建方案。
複製您的手錶應用程序方案,並在「運行」部分選擇您的自定義通知作爲可執行文件。
現在您可以運行通知方案。
在項目中的擴展組內,在支持文件下是一個名爲PushNotificationPayload.json的文件。
您可以編輯有效載荷文件以嘗試不同的通知和類別。
0
觸發一個通知,首先你需要權限:(在ExtensionDelegate聲明通常)
func askPermission() {
UNUserNotificationCenter.current().requestAuthorization(options: [.badge, .alert,.sound]) { (authBool, error) in
if authBool {
let okAction = UNNotificationAction(identifier: "ok", title: "Ok", options: [])
let category = UNNotificationCategory(identifier: "exampleCategoryIdentifier", actions: [okAction], intentIdentifiers: [], options: [])
UNUserNotificationCenter.current().setNotificationCategories([category])
UNUserNotificationCenter.current().delegate = self
}
}
}
對於有這方面的工作,你需要導入(在ExtensionDelegate)「UserNotifications」,並延長:
UNUserNotificationCenterDelegate
一旦你這樣做,你可以調用askPermission哪裏你想要,就像這樣:
if let delegate = WKExtension.shared().delegate as? ExtensionDelegate {
delegate.askPermission()
}
現在你有(希望)的權限觸發通知! 對於觸發的通知,你可以使用這樣的功能:
func notification() {
let content = UNMutableNotificationContent()
content.body = "Body Of The Notification"
content.categoryIdentifier = "exampleCategoryIdentifier" // Re-Use the same identifier of the previous category.
content.sound = UNNotificationSound.default() // This is optional
let request = UNNotificationRequest(identifier: NSUUID().uuidString,
content: content,
trigger: nil)
let center = UNUserNotificationCenter.current()
center.add(request) { (error) in
if error != nil {
print(error!)
} else {
print("notification: ok")
}
}
}
+0
謝謝!請考慮對我未解答的問題採取「一瞥」(笑)。 Incase你可以幫助我! –
相關問題
- 1. PostgreSQL觸發通知
- 2. 如何在後臺觸發通知?
- 3. 如何觸發iWatch上iPhone的通知
- 4. MovieFinishedCallback通知未觸發
- 5. 通知未被觸發
- 6. 優勢通知觸發器
- 7. 計劃通知未觸發
- 8. 通知觸發事件
- 9. 通知沒有觸發
- 10. 通知只觸發一次
- 11. NSMutableAttributedString KVO未觸發通知
- 12. ObservableAsPropertyHelper不會觸發任何通知
- 13. 通過推送通知觸發構建
- 14. 應該iOS上的遠程通知觸發推送通知UIApplicationWillResignActiveNotification?
- 15. UILocalNotification當我打開通知托盤查看通知時觸發
- 16. UrlGenerator :: generate()觸發棄用通知
- 17. Dynamodb新項目通知/觸發器
- 18. 觸發本地通知從scheduleLocalNotification
- 19. 本地通知不在iphone中觸發
- 20. 即時觸發本地通知
- 21. iphone推送通知觸發方法
- 22. INotifyPropertyChanged不通知數據觸發器
- 23. 觸發UIApplicationWillTerminate通知「停止」Xcode動作
- 24. 多個通知不會觸發
- 25. Facebook 3.x SDK通知不會觸發?
- 26. 每x天觸發一次通知
- 27. 蔚藍documentdb觸發推送通知
- 28. setCharacteristic通知不會觸發onCharacteristicChanged
- 29. UIApplicationSignificantTimeChange通知不會被觸發
- 30. BroadcastReceiver未觸發通知操作點擊
謝謝您的回答,但呼籲在正常情況下的通知(一個真正的設備上沒有在Xcode關聯),我必須用什麼代碼的條款它被觸發? –
這是不可能的。你應該使用像Pusher這樣的遠程通知提供者(這很容易實現)。所以當你進入他們的網絡界面併發送推送通知時,它會出現在所有'訂閱'的設備上。但是用按鈕或類似的東西來觸發它是不可能的。 –