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

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