È possibile ricevere notifiche silenziose in background su iOS, ma è necessario un server per inviare effettivamente le notifiche.
Per fare questo si attiva la modalità Remote notifications
background in scheda Funzionalità del bersaglio:
Poi si registra per le notifiche push in application:didFinishLaunchingWithOptions:
con
UIUserNotificationSettings* notificationSettings = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeNone categories:nil];
[[UIApplication sharedApplication] registerUserNotificationSettings:notificationSettings];
In attesa che l'utente permettendo la vostra applicazione per inviare notifiche push, riceverai il token del dispositivo:
-(void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken;
Se qualcosa va storto, il gestore di fallimento sarà chiamato:
- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:
Si invia il deviceToken
al server e segnalalo per inviare una notifica push in silenzio a quella deviceToken
in fase locale del dispositivo di 08:00.
Questo dispositivo avrà il seguente metodo di applicazione delegato chiamato:
- (void)application:(UIApplication *)application
didReceiveRemoteNotification:(NSDictionary *)userInfo
fetchCompletionHandler:(void (^)(UIBackgroundFetchResult result))completionHandler;
e si sarà in grado di fare il vostro trattamento dei dati.
Facile!
Non dimenticare di chiamare il gestore di completamento quando hai finito!
fonte
2015-04-02 20:38:12
Quando si attiva una notifica locale, non si ottiene alcun controllo dell'app. È solo qualcosa che viene mostrato visivamente all'utente. –
In aggiunta a quanto sopra, solo le notifiche remote (push) ti permetteranno di fare ciò che vuoi fare. – Ollie
Le notifiche locali e push funzionano allo stesso modo in questo senso. non fanno nulla se non li apri. – Kex