Objective c 如何在WatchOS2中获取通知负载?
我在当前的Watch应用程序中实现了动态和静态通知。即使是我,在动态通知中发生任何操作时,也能够在Objective c 如何在WatchOS2中获取通知负载?,objective-c,push-notification,apple-push-notifications,watchkit,watchos-2,Objective C,Push Notification,Apple Push Notifications,Watchkit,Watchos 2,我在当前的Watch应用程序中实现了动态和静态通知。即使是我,在动态通知中发生任何操作时,也能够在-(void)handleActionWithIdentifier:(NSString*)remoteNotification的标识符:(NSDictionary*)remoteNotification方法中接收事件 现在我关心的是,如何在点击实际打开WatchOS应用程序的通知视图时接收任何事件/回调 在启动应用程序时,如何通过点击通知以任何方式获取推送通知负载 在动态通知界面的情况下,我使用
-(void)handleActionWithIdentifier:(NSString*)remoteNotification的标识符:(NSDictionary*)remoteNotification
方法中接收事件
- 现在我关心的是,如何在点击实际打开WatchOS应用程序的通知视图时接收任何事件/回调李>
- 在启动应用程序时,如何通过点击通知以任何方式获取推送通知负载
- (void)didReceiveRemoteNotification:(NSDictionary *)remoteNotification withCompletion:(void (^)(WKUserNotificationInterfaceType))completionHandler {
NSLog(@"%@",remoteNotification);
completionHandler(WKUserNotificationInterfaceTypeCustom);
}
编辑
我在appdelegate中添加了以下代码以注册通知
UIUserNotificationType userNotificationTypes = (UIUserNotificationTypeAlert | UIUserNotificationTypeBadge | UIUserNotificationTypeSound);
UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:userNotificationTypes categories:nil];
[application registerUserNotificationSettings:settings];
[application registerForRemoteNotifications];
关于您的Watch应用程序的extension delegate,我将研究以下委托方法,以回答您的两个问题:
- (void)handleActionWithIdentifier:(NSString *)identifier forRemoteNotification:(NSDictionary *)remoteNotification
周长:
- 标识符:如果未点击通知按钮启动应用程序,则等于“”(空
),或者如果用户点击通知按钮启动应用程序,则等于您为通知操作按钮设置的标识符NSString
- remoteNotification:远程通知附带的有效负载。它的格式是字典,因此您可以从该对象获取有效负载
aps
键包含警报
信息和徽章
信息。然后,您的自定义数据将附加到整个字典。要访问它,如果使用键“testKey”配置负载字典,则可以使用remoteNotification[@“testKey”]
访问它
更新
根据苹果公司的说法,静态通知“不得包括控件、表格、地图或其他交互元素”,因为只有在交互通知无法及时启动的情况下,静态通知才能用作备用。来源:
来源和/或额外资源:
在我的情况下,此方法在点击通知时未被调用。@Mrug您是否已按照本文档的规定,通过调用UIApplication.sharedApplication().registerUserNotificationSettings(设置)注册了用户通知设置?我已在appdelegate中添加了要注册的代码。我刚刚更新了答案。根据苹果的watchOS开发者库,静态通知UI不应该有任何交互按钮,这就是为什么它没有触发任何方法。这回答了你的问题吗?我没有只使用静态通知,动态和静态都是这样。他们都没有提供任何回电。