Zgodnie z dokumentacją Apple mogę zarejestrować się w celu wymuszenia powiadomienia, dodając wartość kluczową "content-available" = 1
w słowniku ładowności . Chcę, aby moja aplikacja budziła się w tle po otrzymaniu cichego powiadomienia. Ustawić App downloads content in response to push notifications
wartość Required background modes
w moim Info.plistCzy ciche powiadomienia push firmy Apple uruchamiają moją aplikację w tle?
To mój słownik ładowność
{"aps":
{
"alert":"Notification alert","badge":1,"sound":"default","content-available":1
}
}
jestem coraz zwrotnych w -(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
podczas gdy moja aplikacja jest w tle. Ale moje pytanie brzmi: czy możemy uzyskać wywołanie zwrotne do tej lub jakiejkolwiek innej metody, gdy nasza aplikacja jest w stanie uśmiercenia?
Nie chcę, aby użytkownik aplikacji zobaczył powiadomienie, ale chcę, aby moja aplikacja wykonywała określone zadanie, budząc je w tle za pomocą cichych powiadomień.
Wszelkie sugestie będą mile widziane.
Masz rację, ale problem polega na tym, że moja aplikacja jest w stanie uśmiercenia i przychodzi ciche powiadomienie, niż moja aplikacja nie uruchamia się w tle. –
Czy jesteś całkiem pewien? To może być trudne do debugowania. Może okazać się, że jest to najłatwiejsze (jeśli Twój Xcode debug-fu nie jest w 100%), aby zapisać dziennik do pliku po uruchomieniu aplikacji, dzięki czemu możesz zobaczyć, że aplikacja aktywuje się, nawet jeśli nie jesteś do niej podłączony za pomocą Debugger Xcode. Technologia zdecydowanie działa, ale [zdarzają się przypadkowe dziwactwa] (http://stackoverflow.com/questions/19239737/silent-push-notification-in-ios-ios-7-does-notwork). – TwoStraws
Jeśli aplikacja została ręcznie usunięta przez użytkownika, często jest to wskazówką dla systemu operacyjnego, że użytkownik * naprawdę * nie chce, aby był uruchomiony. Z pewnością kilka innych "podstawowych" procesów w systemie iOS (np. Transfer plików w tle za pomocą NSURLSession) w szczególności * nie uruchamia aplikacji, tak jak normalnie, gdyby została zabita z przełącznika aplikacji.Nie wiem o tym konkretnym przypadku, ale nie zdziwiłoby mnie stwierdzenie, że ręcznie zakończona aplikacja nie obudzi się w powiadomieniach push, dopóki nie zostanie ręcznie uruchomiona ponownie przez użytkownika. –