2017-11-20 2 views
-3

In einigen Anwendungen, wie WhatsApp, wenn ich eine Nachricht ohne Internetverbindung senden dann schließen (beenden) die App, wird die Nachricht gesendet, wenn das Internet zurückkommt.Überprüfen Sie die Internetverbindung in iOS

Ich versuche das gleiche zu tun und frage mich, ob es eine Möglichkeit gibt, nach einer Internetverbindung zu suchen, wenn meine App nicht läuft und im Vordergrund ist, um eine bestimmte Aufgabe zu erledigen.

+0

Es klingt wie Sie [Hintergrundaktualisierung] (https://developer.apple.com/documentation/uikit/core_app/managing_your_app_s_life_cycle/preparing_your_app_to_run_in_the_background/updating_your_app_with_background_app_refresh) benötigen, wenn Sie die Nachricht senden später möchten, während die App nicht im Vordergrund. –

+0

Aber ich denke, Hintergrund App Refresh Arbeit während App öffnen nicht, wenn beendet –

+0

Das System wird eine App aus dem ["beendete" Zustand] (https://developer.apple.com/library/content/documentation/iPhone/Conceptual/ iPhoneOSProgrammingGuide/BackgroundExecution/BackgroundExecution.html # apple_ref/doc/uid/TP40007072-CH4-SW7), es sei denn, der Benutzer ** erzwingt ** es. Wenn die App vom System oder aufgrund eines Neustarts des Geräts beendet wurde, wird Ihre App im Hintergrund neu gestartet. –

Antwort

3

Reachability

Beispiel:

Reachability *reachability = [Reachability reachabilityForInternetConnection]; 
NetworkStatus remoteHostStatus = [reachability currentReachabilityStatus]; 
if (remoteHostStatus == NotReachable) { 
    // not reachable 
} else if (remoteHostStatus == ReachableViaWiFi) { 
    // reachable via Wifi 
} else if (remoteHostStatus == ReachableViaWWAN) { 
    // reachable via WWAN 
} 

bearbeiten

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 
    // Initialize Reachability 
    Reachability *reachability = [Reachability reachabilityWithHostname:@"www.google.com"]; 

    // Start Monitoring 
    [reachability startNotifier]; 

    //your code 

    return YES; 
} 

Jedes Mal, wenn die Netzwerk-Schnittstelle ändert, reachabilityDidChange: aufgerufen wird

- (void)reachabilityDidChange:(NSNotification *)notification{ 

    Reachability *reachability = [Reachability reachabilityForInternetConnection]; 
    NetworkStatus remoteHostStatus = [reachability currentReachabilityStatus]; 
    if (remoteHostStatus == NotReachable) { 
     // not reachable 
    } else if (remoteHostStatus == ReachableViaWiFi) { 
     // reachable via Wifi 
    } else if (remoteHostStatus == ReachableViaWWAN) { 
     // reachable via WWAN 
    } 
} 

Dies wird Ihr Problem lösen.

+0

dieser Code funktioniert vielleicht App wird geöffnet, aber ich frage mich, es gibt eine Möglichkeit, damit umzugehen, wenn App schließen (beenden). –

Verwandte Themen