In Android gibt es eine Broadcast gesendet von der OS, wenn Änderungen in Systemkonfigurationen (wie Änderung im Netzwerkstatus usw.). Diese Broadcast-Nachrichten können vom Broadcast-Empfänger in unserer App empfangen werden und das Verhalten der App entsprechend ändern, obwohl unsere App nicht im aktiven Zustand ist. Wie kann ich das ähnliche Broadcast Receiver Verhalten in iOS erreichen?So erhalten Sie Benachrichtigungen auf iOS bei Änderung des Netzwerks im nicht aktiven Zustand
1
A
Antwort
0
Sie können NSNotificationCenter
verwenden, um Änderungen zu überwachen.
NSNotificationCenter.defaultCenter().addObserver(
self,
selector: "batteryLevelChanged:",
name: NSUserDefaultsDidChangeNotification,
object: nil)
Hier ist die API-Referenz ist: https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSNotificationCenter_Class/
EDIT 1:
Für Ihren Fall können Sie die Schritte und versuchen.
- Bibliothek verwenden Reachability zu Benachrichtigung erhält auf dem Netzwerk zu ändern und individuelle Benachrichtigungsfunktion definieren.
func reachabilityChanged(note: NSNotification) {
let reachability = note.object as! Reachability
if reachability.isReachable() {
if reachability.isReachableViaWiFi() {
print("Reachable via WiFi")
} else {
print("Reachable via Cellular")
}
} else {
print("Network not reachable")
}
}
- In Ihrer Benachrichtigungsfunktion, erstellen Sie eine entsprechende lokale Benachrichtigung
var notification = UILocalNotification()
notification.alertBody = "Notification message!!!" // text that will be displayed in the notification
notification.alertAction = "open" // text that is displayed after "slide to..." on the lock screen - defaults to "slide to view"
notification.fireDate = NSDate() // todo item due date (when notification will be fired)
notification.soundName = UILocalNotificationDefaultSoundName // play default sound
notification.userInfo = ["UUID": UUID, ] // assign a unique identifier to the notification so that we can retrieve it later
notification.category = "CATEGORY"
UIApplication.sharedApplication().scheduleLocalNotification(notification)
0
Sie verwenden Erreichbarkeits Klasse um Netzwerkänderung Nr tifizierung, hier ist Beispiel:
Verwandte Themen
- 1. Akkordeon im aktiven Zustand
- 2. So aktualisieren Sie den Preis bei Änderung des Auswahlwerts
- 3. Capture Änderung im aktiven Fenster (für Linux)
- 4. Wie zeigt man Remote-Push-Benachrichtigungen als Banner-Stil im aktiven Zustand der App an?
- 5. So zeigen Sie Benachrichtigungen in IOS an
- 6. So erhalten Sie Attribute Werte bei Änderung der Dropdown-Auswahl
- 7. Firebase iOS nicht Push-Benachrichtigungen erhalten
- 8. So erhalten Sie Zugriff auf die aktiven RowDetails eines DataGrids
- 9. Lokale Benachrichtigungen funktionieren bei einigen Benutzern nicht (iOS 8)
- 10. Orakel Partition aktiven Zustand auf Tabelle
- 11. Lokale Benachrichtigungen ios
- 12. RShiny - So teilen Sie App innerhalb des Netzwerks
- 13. Doppelte Push-Benachrichtigungen auf iOS
- 14. Neurolab Umschulung des Netzwerks
- 15. Caching-System außerhalb des Netzwerks
- 16. So erhalten Sie Benachrichtigungen auf der Client-Seite
- 17. So lesen Sie Benachrichtigungen korrekt auf Android
- 18. jQuery UI-Tasten - aktiven Zustand halten, ignorieren schweben Zustand
- 19. So erhalten Sie Spaltenkopftext bei Doppelklick
- 20. Ermitteln des aktiven Knotens im SQL-Failovercluster
- 21. So erhalten Sie: Zeitzoneneinstellung des FTP-Servers?
- 22. Wie man aktiven Zustand in bootstrap navbar im Reagieren verwaltet?
- 23. So aktivieren Sie Benachrichtigungen auf meinem Entwicklungsserver
- 24. So erhalten Sie die Parameter des ui-routers bei der Aktualisierung des Browsers
- 25. iptables-Befehl zur Überbrückung des Openstack-Netzwerks
- 26. IOS keine GCM Push-Benachrichtigungen erhalten
- 27. Xamarin iOS - Handle Benachrichtigungen gelöscht
- 28. So erhalten Sie den Umfang des Geschäfts im Raster
- 29. So erhalten Sie den Wert des Optionsfelds im Controller
- 30. So verwenden Sie Realm-Benachrichtigungen
Dank für die Antwort. Vielleicht ist meine Frage nicht klar. Ich erwarte, dass eine lokale Benachrichtigung entweder als Warnung oder Benachrichtigung in der Statusleiste oder sogar als Ausweis bei einer Netzwerkzustandsänderung (z. B. wenn wir von WiFi auf Datenkarte wechseln oder umgekehrt) erhalten wird. Und das sollte ausgelöst werden, auch wenn meine Anwendung nicht im aktiven Zustand ist. – user3513902
Verstehen, dann gibt es bereits eine Bibliothek für Ihre Anfrage https://github.com/ashleymills/Reachability.swift. – BobGao
Dank @ BobGao, ich studierte Erreichbarkeit und es tut wie erwartet. Kann es funktionieren, wenn meine Anwendung nicht im laufenden Zustand ist, und ich sollte eine Benachrichtigung in der Benachrichtigungsleiste erhalten, wenn ich meinen Netzwerkstatus ändere. – user3513902