Nieco podobne do When is didRegisterForRemoteNotificationsWithDeviceToken called?.didRegisterForRemoteNotificationsWithDeviceToken wywołano dwa razy?
Gdy użytkownik po raz pierwszy zainstalował aplikację i wyświetli pytanie, czy przyjąć powiadomienie, czy zostanie wywołany didRegisterForRemoteNotificationsWithDeviceToken
, jeśli użytkownik to zaakceptuje?
Obecnie dzwonię pod numer registerForRemoteNotificationTypes
po tym, jak użytkownik pomyślnie się zaloguje lub utworzy konto.
W kolejnych uruchomieniach delegat didRegisterForRemoteNotificationsWithDeviceToken
jest wywoływany nawet bez wywoływania registerForRemoteNotificationTypes
w AppDelegate.
Jeśli śledzę Docs i przykładowy kod:
Wnioskując urządzenie tokenu i przekazania go do dostawcy Za każdym razem uruchamia aplikację, przyczyni się do zapewnienia, że dostawca ma bieżącego tokenu dla urządzenia .
- (void)applicationDidFinishLaunching:(UIApplication *)app {
// other setup tasks here....
[[UIApplication sharedApplication] registerForRemoteNotificationTypes:...
}
Ale żądając token gdy uruchamia app, delegat będzie wywoływana dwukrotnie.
Kilka pytań i jasności potrzebne:
dla początkowego szybka wydarzy, to wezwanie do
registerForRemoteNotificationTypes
muszą być wykonane w odniesieniu do bezzwłocznej pojawiać? Ale delegat zostanie wywołany dwukrotnie, jeśli zadzwonię do niego ręcznie w AppDelegate. Czy to jest tak?Jeśli użytkownik zaakceptuje początkowy monit, czy zostanie automatycznie wywołana
didRegisterForRemoteNotificationsWithDeviceToken
? Lub musimy wywołaćregisterForRemoteNotificationTypes
w AppDelegate? Ale wtedy delegat zostanie wezwany dwukrotnie na przyszłe premiery?Jeśli użytkownik odmówi, a następnie zaakceptuje go za pośrednictwem Ustawień, co się stanie?
UPDATE
0. Dla początkowa szybka wydarzy, to wezwanie do registerForRemoteNotificationTypes
muszą być wykonane w odniesieniu do bezzwłocznej pojawiać? Ale delegat zostanie wywołany dwukrotnie, jeśli zadzwonię do niego ręcznie w AppDelegate. Czy to jest tak?To nie jest prawda. Okazało się, że w AppDelegate wykonano 2 registerForRemoteNotiicationTypes
.
Ok. Będzie on wywoływany tylko wtedy, gdy użytkownik zaakceptuje zgłoszenie i udaną rejestrację? W przeciwnym razie zostanie wywołana metoda awarii? Co się stanie, jeśli użytkownik odrzuci monit, czy zostanie wywołana metoda błędu? –
Jeśli użytkownik odrzuci monit, nie zainicjował procesu rejestracji APNS i metoda błędu nigdy nie zostanie wywołana. didFailToRegisterForRemoteNotifications MetodaWithError jest wywoływana tylko przy niepowodzeniu rejestracji. – thatzprem