我正在创建一个具有聊天功能的Apple Watch应用程序。我想在手表应用程序运行并收到APNS消息时更新聊天对话。我知道application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject])
中的函数
WKUserNotificationInterfaceController
可以使用,但仅当设备应用程序在前台而不是后台运行时才能使用。在didReceiveRemoteNotification
中,有return
函数,但仅在使用动态通知时使用。是否可以让监视应用程序处理不使用动态通知并在前台运行时收到的远程通知?
答案 0 :(得分:6)
创建WatchKit应用程序并使用APNS时,您需要了解有关推送通知在Watch方面的实际工作方式的一些事项。
1)根据用户活动(iPhone已锁定/未锁定;使用/不使用Watch),iOS系统选择是否通知由Watch处理。
当您的某个应用的本地或远程通知到达用户的iPhone时,iOS会决定是在iPhone上还是在Apple Watch上显示该通知。见Doc Apple
2)对于iOS方面,您可以在didReceiveRemoteNotificationapplication(_:didReceiveRemoteNotification:fetchCompletionHandler:)
==>处理所有通知。您可以检查您的应用是否处于前台+处理无声通知。
3)Watch侧的通知有两个不同的入口点:
WKUserNotificationInterfaceController
。didReceiveRemoteNotification(_:)
课程中有ExtensionDelegate
,这是在您的WatchKit应用运行时调用的。有关完整文档,请参阅here。如果您需要在应用运行时通过APNS更新应用,则应在最后一种方法中处理它;)
希望它能帮到你!