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:
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