我有一個應用程序,無法加載任何東西,如果它沒有訪問互聯網。在我的應用程序委託我用這個代碼:UIAlertView當應用程序沒有互聯網
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
//Check for internet
internetReachableFoo = [Reachability reachabilityWithHostname:@"www.google.com"];
// Internet is not reachable
internetReachableFoo.unreachableBlock = ^(Reachability*reach)
{
// Update the UI on the main thread
UIAlertView * alert = [[UIAlertView alloc] initWithTitle:@"Alert" message:@"This is an example alert!" delegate:self cancelButtonTitle:@"Hide" otherButtonTitles:nil];
alert.alertViewStyle = UIAlertViewStylePlainTextInput;
[alert show];
exit(0);
dispatch_async(dispatch_get_main_queue(), ^{
NSLog(@"Someone broke the internet :(");
});
};
[internetReachableFoo startNotifier];
return YES;
}
對互聯網的檢查從該響應Link做,然後我要顯示一個警告框,告訴用戶它沒有互聯網不會工作,然後關閉應用程序。目前我有exit(0);
,我知道蘋果不會接受,因此我的警報視圖中,我需要確定按鈕關閉應用程序(如果蘋果允許的話)。我的問題是我不知道如何關閉一個應用程序,尤其是使用UIAlert視圖(我對iOS相當新),如果是這種情況顯示警報視圖,我希望應用程序在警報視圖時停止加載其他所有內容如果它沒有互聯網,它就會啓動,因爲應用程序只會崩潰(再次,如果蘋果允許您停止應用程序繼續加載)如何以蘋果認可的方式解決這個問題?
從用戶體驗的角度來看,你試圖做的是一個壞主意。通知用戶沒有互聯網並禁用應用程序的功能,但不要關閉應用程序。 – JeffRegan
我同意這兩個答案(SK9和邁克爾Dautermann)。檢查除了應用程序委託(可能是根視圖控制器)以外的其他地方的可達性,並且不要關閉您的應用程序。只要通知用戶他們需要連接到互聯網,並且在可達性更改爲連接之前不要再進行網絡呼叫。 – JeffRegan
沒問題。謝謝!我只是將它移動到不執行任何功能,直到它連接,而不是關閉應用程序 –