有人可以通过在长按本地通知中添加按钮来与我联系吗?我是手表套件和通知的新手。
长期看起来功能正常。我在我的主机应用中设置了UILocalNotification
,设置了alertBody,category,userInfo等,然后将其发送出去。
在我的通知控制器中,我正在didReceiveLocalNotification
中设置所有内容,但它运行正常。
从我的研究来看,似乎我应该以某种方式将按钮添加到通知中并使用方法handleActionWithIdentifier: forLocalNotification
,但我不清楚如何做到这一点。
我在写Objective-C。感谢
答案 0 :(得分:0)
这是我正在使用的通知有效负载:
{
"aps": {
"alert": {
"body": "Hi! How you doing? This is a test message. Press 'Reply' button to reply. Thanks!",
"title": "Petya"
},
"category": "newMessage"
},
"WatchKit Simulator Actions": [
{
"title": "Reply",
"identifier": "replyPressed"
}
],
}
创建自定义通知子类并覆盖以下方法,不要忘记在相应的storyboard控制器中设置该子类:
override func didReceiveRemoteNotification(remoteNotification: [NSObject : AnyObject], withCompletion completionHandler: (WKUserNotificationInterfaceType) -> Void) {
if let aps = remoteNotification["aps"] as? NSDictionary {
if let alert = aps["alert"] as? NSDictionary {
if let title = alert["title"] as? String {
titleLabel.setText(title)
}
if let body = alert["body"] as? String {
bodyLabel.setText(body)
}
}
}
completionHandler(WKUserNotificationInterfaceType.Custom)
}
在您的通知中显示标题为“回复”的自定义按钮。当您按下它时,它将启动监视应用程序主界面控制器并致电handleActionWithIdentifier:localNotification:
或handleActionWithIdentifier:remoteNotification:
,具体取决于您收到的通知类型。你必须像那样覆盖它:
override func handleActionWithIdentifier(identifier: String?, forRemoteNotification remoteNotification: [NSObject : AnyObject]) {
println("identifier: \(identifier)")
println("remoteNotification: \(remoteNotification)")
if identifier == "replyPressed" {
if let aps = remoteNotification["aps"] as? NSDictionary {
if let alert = aps["alert"] as? NSDictionary {
if let title = alert["title"] as? NSString {
let context = Context()
context.object = title
pushControllerWithName(kTCChatRoomControllerIdentifier, context: context)
}
}
}
}
}
P.S。 Context
是我自己的类,用于在WKInterfaceController
的子类之间传递数据
希望这会对你有帮助!)
答案 1 :(得分:0)
“Apple Watch编程指南”的Notification Essentials部分介绍了如何为本地通知的Long-Look通知添加操作按钮。
基本上,您需要为要添加到Long-Look界面的每个按钮创建一个UIMutableUserNotificationAction,以及本地通知的类别。当您注册通知时,这会在 iOS应用的应用代表中完成。该指南中的清单15-1显示了如何执行该操作。然后,在Apple Watch应用程序的故事板中,将通知的类别设置为刚刚创建的类别。本指南的下一部分“响应操作按钮中的按钮”应该有希望告诉您需要知道的一切,以便启动WatchKit应用程序,或在iPhone上执行后台任务。