在 watchkit 中接收本地通知
Posted
技术标签:
【中文标题】在 watchkit 中接收本地通知【英文标题】:Receive Local Notification In watchkit 【发布时间】:2015-04-08 11:25:59 【问题描述】:我已经设置了本地通知如下:
-(void)startLocalNotification
UILocalNotification *notification = [[UILocalNotification alloc] init];
notification.fireDate = [NSDate dateWithTimeIntervalSinceNow:7];
notification.alertBody = @"This is local notification!";
notification.timeZone = [NSTimeZone defaultTimeZone];
notification.soundName = UILocalNotificationDefaultSoundName;
notification.applicationIconBadgeNumber = 10;
NSDictionary *infoDict = [NSDictionary dictionaryWithObject:@"Hello! This is Local Notification!" forKey:@"Notification"];
notification.userInfo = infoDict;
[[UIApplication sharedApplication] scheduleLocalNotification:notification];
我在 iPhone 模拟器上收到通知。但它不会触发 watchkit 应用程序的通知。我在 watchkit 扩展中的 NotificationController.m 中使用以下方法 -
- (void)didReceiveLocalNotification:(UILocalNotification *)localNotification withCompletion:(void (^)(WKUserNotificationInterfaceType))completionHandler
NSLog(@"Notification Received ..");
completionHandler(WKUserNotificationInterfaceTypeCustom);
谁能告诉我为什么我没有在 watchkit 应用中收到本地通知。
提前致谢。
【问题讨论】:
【参考方案1】:请参阅 Apple Watch 编程指南HERE
When one of your app’s local or remote notifications arrives on the user’s iPhone, ios decides whether to display that notification on the iPhone or on the Apple Watch.
因此您无需担心在 Watch 上发送通知,iOS 会为您完成。
无论如何,如果您只想在手表上发送通知,您可以使用Darwin Notification Concepts,但请注意有一些限制,您可以查看给定的链接。
App和扩展之间也可以使用shared container进行通信。
希望对你有所帮助。
【讨论】:
另外请记住,模拟器目前不支持本地通知。 iPhone 或 iPad 模拟器支持本地通知。 但不是在 WatchKit 上。它在文档和论坛中有所提及。 详细说一下,如果你想触发手表接收本地通知,我相信你只要在通知到来时让iPhone休眠就可以了。 所以我们只能在 iWatch 中接收远程通知??以上是关于在 watchkit 中接收本地通知的主要内容,如果未能解决你的问题,请参考以下文章
在自定义 WatchKit 通知上同时显示 alertTitle 和 AlertBody