0

インターネット接続が必要なアプリを開発しているので、起動前に空き状況を確認したいと思います。インターネットに接続できない場合は、アプリを起動する代わりに、ユーザーにアラートを表示してホームに戻ります。

そこで、ここ(http://stackoverflow.com/questions/1961341/check-for-internet-access-with-monotouch)で推奨されているReachabilityクラスを使用して、インターネット接続を確認しました。ここまでは順調ですね。しかし、このチェックをMain.csに配置すると、チェックは実行されますが、アラートは表示されません。

if(!Reachability.IsHostReachable("http://google.com")) {
                Debug.WriteLine("OFFLINE");
                UIAlertView alert = new UIAlertView("Offline","Voor deze app is een internetverbinding vereist.",null,"OK",null);
                alert.Show();
            }
            else{           
            MPFramework.Application app = new MPFramework.Application();
            UIApplication.Main (args, null, "AppDelegate");         
            }

このチェックをAppDelegate.csに配置すると、チェックが実行され、アラートが表示されますが、ホームに戻る代わりに黒い画面が表示されます。では、アプリを起動してアラートを表示する前に確認するために、コードをどこに配置すればよいですか?

4

1 に答える 1

3

あなたはこれを少し間違って見ています:

  • Apple は、自分自身を強制終了/終了するアプリを承認していません (これを参照してください: https://stackoverflow.com/a/356342/183422 )。ユーザーがアプリを閉じたい場合は、自分で行う必要があります。

  • UI を表示するには、メイン ループを実行する必要があります。そのメイン ループは、UIApplication.Main を呼び出すと開始されます (そのため、AppDelegate.cs でチェックを行い、Main メソッドではなくそこで対応するアラートを表示する必要があります)。 .

したがって、これらのことをまとめると、空白/スプラッシュ画面を表示し、到達可能性を確認し、到達可能性がない場合はアラートを表示する必要があると思います (ユーザーがアラートを無視した場合は、もう一度確認してください)。

于 2012-06-05T09:41:13.583 に答える