ho i miei appunti su Push Notification in https://github.com/onmyway133/notes/issues/219
Scenari
012.
Questi sono gli scenari che si può passare attraverso
isRegisteredForRemoteNotifications
-UIApplication.shared.currentUserNotificationSettings
iOS 9.3.2+
- Non hanno innescare finestra richiesta push: false - nessuno
- Abilita spinta per app su richiesta di autorizzazione: true - alert, badge, audio
- Spegni push per app: true - none
- Accendere spinta, abilitare solo avviso: vero - avviso
- Disinstallare e installare di nuovo (entro 24 ore): false - nessuno
- Nega quando abbiamo chiesto su richiesta l'autorizzazione: vero - nessuno
- spinta Riattivare dopo smentita: true - avviso, distintivo, suono
API
Come di iOS 8+, la notifica API push è stato diviso per registerForRemoteNotifications
e registerUserNotificationSettings
.
Quindi, quando si chiamano registerForRemoteNotifications
func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data)
si chiama
UIApplication.shared.isRegisteredForRemoteNotifications
restituisce true
Ciò significa che l'applicazione ha ricevere il token spinta, ed è pronto a ricevere la notifica push.Sia il sistema operativo fornisce spinta per la vostra applicazione dipende da user notification settings
, che è ciò che l'utente si alterna nel Settings
Mostrami il codice
Per verificare se spinta è abilitato (significa che l'utente può visualizzare il messaggio push)
static var isPushNotificationEnabled: Bool {
guard let settings = UIApplication.shared.currentUserNotificationSettings
else {
return false
}
return UIApplication.shared.isRegisteredForRemoteNotifications
&& !settings.types.isEmpty
}
Quale versione IOS testate? e fare test su un dispositivo reale o un simulatore? –
È su ios8.2, ios8.3, su dispositivi reali (installazioni recenti) – TIMEX