我会编写什么代码来触发手表应用程序本身的手表套件通知?例如,如果我将手表故事板中的按钮连接到我的WatchInterfaceController作为动作,那么当按下它时会触发手表上的通知。
答案 0 :(得分:0)
要测试观看通知,您必须先创建新的构建方案。
复制您的观看应用计划,并在“运行”部分中,选择您的自定义通知作为可执行文件。
现在您可以运行通知方案。
在项目的扩展组内,在Supporting Files下是一个名为PushNotificationPayload.json的文件。
您可以编辑有效内容文件以尝试不同的通知和类别。
答案 1 :(得分: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")
}
}
}