我需要编写哪些代码才能从手表应用程序本身触发手表套件通知?例如,如果我将手表故事板中的按钮作为动作连接到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. 如何触发iWatch上iPhone的通知
- 2. NSMutableAttributedString KVO未触发通知
- 3. MovieFinishedCallback通知未触发
- 4. 优势通知触发器
- 5. UILocalNotification当我打开通知托盘查看通知时触发
- 6. iphone推送通知触发方法
- 7. setCharacteristic通知不会触发onCharacteristicChanged
- 8. 事件触发吐司通知UWP
- 9. 在循环中触发通知一次
- 10. react-native推送通知onNotification不触发
- 11. Android FCM显示触发服务通知
- 12. UrlGenerator :: generate()触发弃用通知
- 13. UIApplicationSignificantTimeChange通知不会被触发
- 14. 通知不会触发特定时间
- 15. 触发器或更改通知
- 16. BroadcastReceiver未触发通知操作点击
- 17. Dynamodb新项目通知/触发器
- 18. 键盘通知没有正确触发
- 19. 蔚蓝documentdb触发推送通知
- 20. ASP.NET Mvc:如何在日期之后触发通知事件?
- 21. 如何使用FCM触发横幅通知?
- 22. 如何传递触发推送通知的用户对象
- 23. 如何在使用addListItem时触发电子邮件通知?
- 24. 如何触发大气(彗星)中其他框架的通知?
- 25. 如何检测可执行通知的触发日期
- 26. 如何捕获执行数据库触发器的通知?
- 27. 如何实施geofence触发本地通知?
- 28. 如何知道@RequestMapping触发的时刻?
- 29. UI Webview或WK Webview
- 30. Iphone 4 sdk - 我如何知道applicationWillEnterForeground是否由于通知而被触发?
谢谢您的回答,但呼吁在正常情况下的通知(一个真正的设备上没有在Xcode关联),我必须用什么代码的条款它被触发? –
这是不可能的。你应该使用像Pusher这样的远程通知提供者(这很容易实现)。所以当你进入他们的网络界面并发送推送通知时,它会出现在所有'订阅'的设备上。但是用按钮或类似的东西来触发它是不可能的。 –