我有一个用于 Apple Watch 通知的简单静态接口(interface),如下所示:
并在 PushNotificationPayload 中如下:
{
"aps": {
"alert": {
"body": "123You have a new message",
"title": "myApp"
},
"category": "respond"
},
"WatchKit Simulator Actions": [
{
"title": "View Message",
"identifier": "viewMsgBtn"
}
],
"customKey": "customKey"
}
并在 InterfaceController 中实现该方法
- (void)handleActionWithIdentifier:(NSString *)identifier
forRemoteNotification:(NSDictionary *)remoteNotification
{
NSLog(@"Handling remote notification: %@ with identifier: %@", remoteNotification, identifier);
// [self.lbTest setText:[NSString stringWithFormat:@"Notification: %@",remoteNotification.description]];
}
我用通知运行模拟器:
调用InterfaceController 中的awakeWithContext 方法,并在单击View Message 按钮后加载到我的Apple Watch 应用程序界面。
调用 InterfaceController 中的 willActivate 方法。
但是没有调用用于远程通知的 handleActionWithIdentifier ......
任何想法?
最佳答案
我正在经历类似的事情(在 Swift 中),但后来意识到我已经实现了
handleActionWithIdentifier(identifier: String?, forRemoteNotification remoteNotification: [NSObject : AnyObject], withResponseInfo responseInfo: [NSObject : AnyObject])
代替
handleActionWithIdentifier(identifier: String?, forRemoteNotification remoteNotification: [NSObject : AnyObject])
前者适用于用户提供文本响应的情况,此处不适用。
关于push-notification - WatchKit handleActionWithIdentifier : forRemoteNotification is not called,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30840263/