2015-08-05 7 views
5

Próbuję zbudować aplikację, która obsługuje wiele rodzin komplikacji na OS2 zegarka, takich jak modułowy duże, utylitarne duże, okrągłe małe itp., Każdy pokazuje różne znaczące informacje z aplikacji. Wiem, że komplikacje niewiele przypominają spojrzeń, jakie mamy od czasu OS1 pod względem interakcji z użytkownikiem, tzn. Otwierają aplikację po kliknięciu przez użytkownika i nie mają tam żadnej specjalnej interakcji.Obejrzyj dokładny link OS2 do strony w aplikacji

W skrócie, udało mi się zrobić precyzyjny link do aplikacji na podstawie aktualnej zawartości, ale szukam sposobu, aby zrobić to samo z komplikacjami.

Moje pytanie dotyczy tego, kiedy użytkownik kliknie komplikację mojej aplikacji, czy otrzymam jakiekolwiek informacje kontekstowe z informacją o kliknięciu tej komplikacji itp. Myślę, że mogę uzyskać obiekt CLKComplication w kontekście.

enter image description here

Każda pomoc jest mile widziana.

Odpowiedz

6

W ClockKit/CLKDefines.h można znaleźć stałą CLKLaunchedTimelineEntryDateKey.
Nie można jednak zdefiniować własnych informacji o użytkowniku, które pomogą określić, co należy zrobić po uruchomieniu aplikacji.

Z CLKComplicationDataSource Protocol Reference:

CLKLaunchedTimelineEntryDateKey

Kluczowym podając datę, z którą powikłaniem został uruchomiony. Wartością tego klucza jest obiekt NSDate. Kiedy użytkownik dotknie komplikacji, ClockKit zawiera ten klucz w słowniku przekazanym do metody delegata rozszerzenia.

Dostępne w wersji watchOS 2.0 i nowszych wersjach.

+1

Dzięki @Fabian to daje mi tylko wartość daty komplikacji, która została naciśnięta, ale potrzebuję, która rodzina komplikacji została naciśnięta zbyt jak modułowe małe, duże itp. – satheeshwaran

+0

To nie jest obsługiwane, przepraszam. Powinieneś złożyć radar. –

+0

Tak myślałem o tym samym, tymczasem zostawmy ten post otwarty. – satheeshwaran

0

Ponieważ można uzyskać datę gwintowanych wpisu osi czasu za pośrednictwem CLKLaunchedTimelineEntryDateKey można uzyskać typu powikłań (Rodzina), dokonując „stałe sekund” na wejściu linii czasu określonego typu jest.

Stała sekunda powinna być obliczona przez NSDateComponents, a następnie przekonwertować na NSDate, którą można przekazać do CLKComplicationTimelineEntry.

Na przykład można podać datę zakończenia wpisu modularSmall za 10 sekund, ale data wpisu modularLarge kończy się na 20 sekund. Tak więc, nagrany wpis z datą 9:41:10 powinien być typu modularSmall, a wpis z datą 9:41:20 powinien być typu modularLarge.

Powiązane problemy