2017-11-20 9 views
-3

WhatsAppのようないくつかのアプリケーションでは、インターネットに接続されていないメッセージを送信してアプリを終了(終了)すると、インターネットが復帰したときにメッセージが送信されます。iOSのインターネット接続を確認する

私は同じことをやろうとしています。特定のタスクを実行するために、アプリが実行されていないときやフォアグラウンドでインターネット接続を確認する方法があるのだろうかと思います。

+0

あなたは[バックグラウンドアプリの更新](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)を必要とするようにあなたはアプリがある一方で、後にメッセージを送りたい場合、それが聞こえます前景ではありません。 –

+0

しかし、バックグラウンドアプリのリフレッシュは、アプリが終了していないときに開くようにしてください。 –

+0

システムは、アプリを["終了"状態]から再起動します(https://developer.apple.com/library/content/documentation/iPhone/Conceptual/ユーザー**が強制終了しない限り、iPhoneOSProgrammingGuide/BackgroundExecution/BackgroundExecution.html#// apple_ref/doc/uid/TP40007072-CH4-SW7)。アプリケーションがシステムによって終了された場合、またはデバイスが再起動された場合でも、アプリはバックグラウンドに再起動されます。 –

答えて

3

Reachability

例:

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 
} 

編集

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

    // Start Monitoring 
    [reachability startNotifier]; 

    //your code 

    return YES; 
} 

ネットワークインターフェイスの変更は、reachabilityDidChange:が呼び出されるたびに

- (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 
    } 
} 

これで問題は解決します。

+0

このコードはアプリを開くことができるかもしれませんが、アプリを閉じる(終了する)ときにそれを処理する方法があるのだろうかと思います。 –

関連する問題