0

クラスの到達可能性と VPN またはパブリック インターネット ゲートウェイで少し問題に直面しています。

iPhone が何らかの vpn や有料のものを使用して公衆 Wi-Fi に接続されている場合、アプリはクラッシュします。wifiを無効にして3gを強制すると、すべて正常に機能し、wifiが従来の動作するwifiである場合も完全に機能します。だから私は、問題がログインとパスワードを持つ公共のwifiホットストップにリンクされていることを知っています.

Wifi がサーバーに到達し、データが返されることをテストするにはどうすればよいですか? ホスト名での到達可能性でうまくいくのではないでしょうか? ホスト名が設定されていても、reachableviaWifi を返すようです。

ありがとうございました!

Reachability * reach = [Reachability reachabilityWithHostName:@"www.mysoapp.com"];

NetworkStatus status = [reach currentReachabilityStatus];

if (status == NotReachable) {

    return NO;
}
else
    return YES;
4

1 に答える 1

1

到達可能性は、最初のホップ (要求されたホストへの途中) のみをチェックします。これはモバイル環境では重要です。最初のホップは、デバイスの移動に合わせて動的に変更およびドロップされる可能性があるためです。

最初のホップを過ぎて、目的のホストまでずっとチェックしたい場合、最善の方法は、実際にそのホストに接続して、ネットワーク パケット (アプリの通常のネットワーク トラフィックなど) を送受信することです。次に、アプリがロックアップまたはクラッシュするのではなく、接続がタイムアウトしているように見える場合に、アプリにユーザーにオプションを提示させます。Apple は、アプリのレビュー プロセスの一環として後者をテストすることがあり、アプリを拒否する根拠として失敗 (ネットワーク ルートが壊れた場合のクラッシュまたはロックアップ) を使用します。

于 2012-11-10T21:34:29.853 に答える