1

我正在创建一个具有聊天功能的Apple Watch应用程序。我希望在手表应用程序运行并收到APNS消息时更新聊天对话。我知道在AppDelegateWatchKit 2.0在收到APNS时检测到

application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject]) 

可以使用的功能,不过,当设备应用程序在前台,没有后台运行,这只是。在WKUserNotificationInterfaceController中,有功能didReceiveRemoteNotification,但仅在使用动态通知时使用。当不使用动态通知并在前台运行时,是否可以让监视应用程序处理收到的远程通知?

回答

5

在创建WatchKit应用程序和使用APNS时,您需要知道的几件事情是关于推送通知如何在Watch端实际工作。

1)iOS系统根据用户活动(iPhone锁定/解锁; Watch使用/未使用...),选择是否通知由Watch处理。

当您的某个应用的本地或远程通知到达用户的iPhone时,iOS会决定是在iPhone上还是在Apple Watch上显示该通知。见Doc Apple

2)对于iOS的方面,你可以处理didReceiveRemoteNotificationapplication(_:didReceiveRemoteNotification:fetchCompletionHandler:)所有通知==>您可以请检查是否或不是你的应用程序是在前台+处理无声的通知。

3)是用于在观看侧通知两个不同的切入点:

  • 正如你所说的,有当不使用你的应用程序WatchKit这就是所谓的WKUserNotificationInterfaceController
  • 您的ExtensionDelegate类中有didReceiveRemoteNotification(_:)类,当您的WatchKit应用程序正在运行时会调用该类。有关完整的文档,请参阅here

如果你需要更新你的应用程序,而它的运行,通过APNS,你应该处理它在这最后的方法)

希望它会帮助你!

+0

谢谢。那正是我需要的。 –