2011-11-04 18 views
7

Voglio chiudere la mia app quando una connessione Internet non è disponibile.Chiudi app quando internet non è disponibile

Controllo, ma come posso creare un avviso e quindi chiudere la mia app?

+0

sembra un comportamento insolito se si considera che un telefono sia un dispositivo connesso occasionalmente. –

+0

Ho notato app che riescono a farlo (Words With Friends, per uno). Non mi piace, personalmente. –

+0

la mia app funziona con i dati di un server web, se non c'è contidio non ha funzionato, ecco perché volevo questo comportamento. – DaSilva

risposta

19

Si consiglia di non forzare la chiusura di un'applicazione come il modo standard per terminare un'applicazione è quello di premere il tasto home (o utilizzare la barra di multitasking)

non smettere di programmazione


Non chiudere mai un'applicazione iOS a livello di programmazione perché le persone tendono a interpretarlo come un arresto anomalo. Tuttavia, se circostanze esterne impediscono alla tua applicazione di funzionare come previsto, è necessario informare gli utenti di della situazione e spiegare cosa possono fare al riguardo. A seconda di quanto grave sia il malfunzionamento dell'applicazione, sono disponibili due opzioni .

Visualizzare una schermata attraente che descrive il problema e suggerisce una correzione . Una schermata fornisce un feedback che rassicurante gli utenti che non c'è niente di sbagliato con la vostra applicazione. E 'agli utenti il ​​controllo, permettendo loro di decidere se vogliono intraprendere azioni correttive e continuare a utilizzare l'applicazione o premere il tasto Home e aprire un diversa applicazione

Se solo alcune delle caratteristiche della vostra applicazione non funzionano, mostra uno schermo o un avviso quando le persone attivano la funzione. Mostra l'avviso solo quando le persone cercano di accedere alla funzione che non è funzionante.

Source

+2

Questo è vero. Se l'applicazione non può funzionare senza una connessione attiva, è necessario visualizzare alcune UI statiche che lo spiegano all'utente. – tjarratt

6

La vostra applicazione dovrebbe mai chiudersi. iOS non ha il concetto di uscire da un'app. Puoi informare l'utente che non c'è connettività Internet e presentare una schermata di attesa o qualcos'altro che mostri che la tua app è inutile fino a quando la connessione internet non è disponibile, ma la tua app dovrebbe continuare a funzionare finché il sistema operativo non deciderà di spegnerti.

5

Secondo ans di August here

"On the iPhone there is no concept of quitting an app. The only action that should cause an app to quit is touching the Home button on the phone, and that's not something developers have access to. 

According to Apple, your app should not terminate on its own. Since the user did not hit the Home button, any return to the Home screen gives the user the impression that your app crashed. This is confusing, non-standard behavior and should be avoided." 


Ma se si vuole ancora lasciare il tuo app di programmazione allora ci sono due comandi a smettere l'applicazione.

1.exit(0) 

2.[[NSThread mainThread] exit] 
5

Invece di chiusura, si consideri che spiega la situazione per l'utente per mezzo di un popup.

Prima di tutto, scaricare Reachability from Apple.

Aggiungere le classi Reachability.h, .m, delegate al progetto. Quindi nel tuo.m classe di importazione di raggiungibilità

#import "Reachability.h" 

E in viewWillAppear o quando è necessario visualizzare l'avviso:

//Connection check 
    Reachability *reach = [Reachability reachabilityForInternetConnection]; 
    NetworkStatus netStatus = [reach currentReachabilityStatus];  
    if (netStatus == NotReachable) 
    { 
     UIAlertView * alert = [[UIAlertView alloc] initWithTitle:@"No Internet Connection" message:@"Explain the situation to the user" delegate:nil cancelButtonTitle:nil otherButtonTitles:@"Ok", nil]; 
     [alert show]; 
     [alert release];  

    }  
    else { 
    //other actions. 
    } 

Come altri hanno detto prima di me.

Problemi correlati