2015-09-03 25 views
2

所以我們試圖確定我們是否可以使用蘋果手錶默認內部getPlaceholderTemplateForComplication運行NSURLSession註冊設備在我們的後端通知更新。我無法找到任何人做過這件事。這是否會計入複雜的預算?它會甚至運行,還是我們需要通過手錶應用程序或帶有一些數據集的iPhone應用程序來做到這一點?蘋果手錶,註冊併發症到後端服務器添加

  • (無效)getPlaceholderTemplateForComplication:(CLKComplication *)併發症withHandler:(無效(^)(CLKComplicationTemplate * complicationTemplate)){處理}
+0

作爲通過測試的旁註,您可以撥打電話,但是,這是在安裝期間調用的,而不是在運行時調用的。 –

+0

所以如果有人開始有同樣的問題,這裏是我已經想出的信息。您不希望在 - (void)getTimelineStartDateForComplication:(CLKComplication *)與Handler:(void(^)(NSDate * date))處理函數{}之間執行此操作,因爲這會佔用您的cpu時間max。相反,如果它是os2手錶,我們決定將其轉移到應用程序註冊中。然後,我們會推送通知,如果他們有一個活躍的複雜性,我們會做一些通知,否則忽略推送通知。 –

回答

1

聽起來像是你想使用新的PKPushTypeComplication這是在iOS 9中添加的。WWDC talk on WatchConnectivity在更新複雜程序的不同策略方面有很大的一部分,並且詳細介紹了服務器案例中的推送更新。

一般的做法似乎是您的iOS應用程序將使用PKPushRegistry註冊其所需的推送類型,並將推送令牌上傳到您的服務器。然後,您的服務器可以將推送至設備,但只有手錶上的複雜功能當前處於活動狀態,纔會將其傳送至手機應用。當接收到類型爲PKPushTypeComplication的推送時,iOS應用應該使用WCSession的transferCurrentComplicationUserInfo:將立即的用戶信息發送到監視擴展,該監視擴展將被喚醒並且有機會接收用戶信息並且用新數據更新併發症。