Sprawdziłem aplikację iOS 10 Home. Zrzut ekranu jest przechwytywany tylko z aplikacji domowej.Powtórz HMTimerTrigger Przez wiele dni (np. W każdy poniedziałek, środę .... jak w aplikacji iOS 10 Home)
Od ostatnich 2 dni staram się implementować funkcję powtarzania HMTimerTrigger. Moim wymaganiem jest powtarzanie wyzwalacza w każdy poniedziałek, wtorek i piątek. Co mogę znaleźć, to mogę dodać tylko jeden dzień (poniedziałek lub wtorek ... ale nie poniedziałek i wtorek) jak poniżej.
unsigned flags = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitWeekOfYear | NSCalendarUnitDay | NSCalendarUnitHour | NSCalendarUnitMinute;
NSDate *fireDate = [NSDate date];
NSDateComponents *recurrenceComponents = [[NSDateComponents alloc] init];
recurrenceComponents.weekday = 2; // For monday
NSDateComponents *dateComponents = [[NSCalendar currentCalendar] components:flags fromDate:fireDate];
fireDate = [[NSCalendar currentCalendar] dateFromComponents:dateComponents];
HMTimerTrigger *trigger = [[HMTimerTrigger alloc] initWithName:triggerName.text
fireDate:fireDate
timeZone:nil
recurrence:recurrenceComponents
recurrenceCalendar:[NSCalendar currentCalendar]];
Dziękuję za przeczytanie mojego posta. Wszelkie pomysły/sugestie byłyby bardzo pomocne.
Chociaż nie można skonfigurować wielu dni w jednym wystąpieniu 'HMTimerTrigger'. Możesz użyć wielu HMTimerTrigger opartych na wyzwalaniu w różnych dniach. W tym celu 'HMHome' ma metodę addTrigger, która pozwala dodawać wiele wyzwalaczy. W twoim przypadku powinieneś stworzyć 'HMTimerTrigger' dla każdego dnia osobno i dodać je do instancji' HMHome'. W twoim przykładzie musisz dodać trzy wyzwalacze - jeden dla poniedziałku, jeden dla wtorku i jeden dla piątku. – Ravin
Witam @Ravin masz rację, ale problem polega na tym, że pokazujemy wszystkie wyzwalacze. W takim przypadku użytkownik może się pomylić. Dlatego właśnie szukam metody ramowej HomeKit. – SRI
Chociaż nie jest to udokumentowane w ich publicznym interfejsie API, można sprawdzić za pomocą wsparcia technicznego (Incydent pomocy technicznej) i potwierdzić, czy jest jakiś oficjalny sposób na to. Dwie TSI są dostępne dla jednego konta programisty. (Https://developer.apple.com/support/technical/) --- Jeśli oficjalnie nie jest obsługiwane, możesz napisać własny kod, aby mieć coś takiego jak TriggerGroup i zarządzać nim za pomocą nazwa, którą przekazujesz podczas tworzenia wyzwalacza. Może to pomóc w zapewnieniu przejrzystego interfejsu użytkownika. – Ravin