我有一个用于 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/

10-10 06:23