来自 IOS App 的 Watch Kit 通知

Posted

技术标签:

【中文标题】来自 IOS App 的 Watch Kit 通知【英文标题】:Watch Kit notification from IOS App 【发布时间】:2015-10-14 18:05:11 【问题描述】:

我开发了一个 Apple Watch 应用程序。我想要一个简单的行为:当我在配对手表应用程序上按下 iPhone 上的按钮时,我想出现一个通知。这可能吗? 我使用 watch OS 2,我的手表应用程序与 iPhone 应用程序完美通信,反之亦然,通过 WatchConectivity。 所以使用 WCSession 我可以通知手表应用程序,但我如何以通知样式显示控制器,我的意思是这样

我看到在继承自 WKUserNotificationInterfaceController 的控制器上存在

- (void)didReceiveLocalNotification:(UILocalNotification *)localNotification withCompletion:(void (^)(WKUserNotificationInterfaceType))completionHandler 

我怎样才能让这个方法被调用?我试着在手表上创建一个 UILocalNotification

  UILocalNotification *notification = [[UILocalNotification alloc] init];
notification.category = @"myCategory";
notification.fireDate = [NSDate dateWithTimeIntervalSinceNow:8];
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];

问题是手表中不存在 UIApplication 所以我无法安排通知。我在 ios 应用程序上做了同样的事情,但在这种情况下,我在 iPhone 上收到了通知。 我不得不说,在手表应用程序上存在一个类别名称为“myCategory”的 NotificationInterfaceController。

谢谢!

【问题讨论】:

【参考方案1】:
    在您的 iPhone 上创建 UILocalNotification

UILocalNotification *notification = [[UILocalNotification alloc] init]; notification.category = @"myCategory"; notification.fireDate = [NSDate dateWithTimeIntervalSinceNow:8]; 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。

    通知会显示在您的 Apple Watch 和 iPhone 上。

    WatchApp 上的didReceiveLocalNotification 被调用。

要点:您必须锁定 iPhone。

【讨论】:

以上是关于来自 IOS App 的 Watch Kit 通知的主要内容,如果未能解决你的问题,请参考以下文章

iOS:Watch Kit 配对设备不可用于开发

iOS 11 的 Apple Watch 上缺少通知图标

在 Apple Watch 上接收来自 iCloud 的推送通知

如何从 Watch App(Watch OS 2)与非活动的 IOS 应用程序通信

如何将用户从 Apple Watch 通知转移到 Apple Watch App?

applewatch打开后台快捷