Wie schließe ich meine iPhone App, wenn der Bildschirm gesperrt wird?

7

Ich schreibe eine App, die die Authentifizierung auf dem Einstiegsbildschirm beinhaltet und den Zugriff auf sensible Daten auf späteren Bildschirmen ermöglicht. Wenn das iPhone gesperrt ist, entweder mit der Sperrtaste oder durch automatische Sperre, möchte ich, dass sich die App als Sicherheitsmaßnahme schließt. Gibt es eine Möglichkeit, das zu tun?

    
Andrew 23.05.2011, 22:37
quelle

4 Antworten

10

Ihr UIApplicationDelegate erhält das

%Vor%

Nachricht, wenn der Bildschirm gesperrt wird, und

%Vor%

wenn es zurückkommt. Es kann diese Nachrichten jedoch auch in anderen Situationen empfangen (z. B. beim Annehmen eines Telefonanrufs, der Benutzer schließt die App unter iOS 4.0 und höher), und ich kenne keine Möglichkeit, den Grund zu unterscheiden.

Eine bessere Benutzererfahrung wäre meines Erachtens, die Authentifizierung erneut zu starten, wenn die App zurückkommt. Auf diese Weise wird der Benutzer nicht verwirrt, wenn das Telefon entsperrt, und die App, die sie ausgeführt haben, auf mysteriöse Weise beendet wurde.

    
bobDevil 23.05.2011, 22:56
quelle
6

Um Verwirrung zu finden, habe ich auf einem Gerät mit iOS 4.3.2 einige Tests durchgeführt:

Wenn Sie Ihre App starten, wird Ihre App gesendet:     Anwendung: didFinishLaunchingWithOptions:     applicationDidBecomeActive:

Wenn Sie die Home-Taste drücken, wird Ihre App gesendet:

%Vor%

Wenn Sie diese App später erneut starten, wird Ihre App gesendet:

%Vor%

Wenn Sie den Sperrknopf drücken, wird Ihre App gesendet:

%Vor%

Beim Entsperren wird Ihre App gesendet:

%Vor%

Wenn Sie einen Anruf erhalten, wird Ihre App gesendet:

%Vor%

Wenn Sie diesen Anruf nicht annehmen, erhält Ihre App folgende Nachricht:

%Vor%

Wenn Sie einen Anruf erhalten, wird Ihre App gesendet:

%Vor%

Wenn Sie diesen Anruf annehmen, erhält Ihre App folgende Nachricht:

%Vor%

Wenn Sie diesen Anruf auflegen, wird Ihre App gesendet:

%Vor%

Ich würde sagen, wenn Sie ein applicationWillResignActive erhalten: dann sollten Sie sich ausloggen, ent-authentifizieren, sperren oder Ihre vertraulichen Informationen verwerfen, und wenn Sie applicationDidBecomeActive: erhalten, dann authentifizieren Sie sich erneut. Dieser wird beim Start aufgerufen, kehrt aus dem Hintergrund zurück und entsperrt das Gerät.

Auch diese beiden Methoden mögen für Sie interessant sein, aber sie helfen nicht wirklich in dem speziellen Fall, an dem Sie interessiert sind:

%Vor%     
mahboudz 24.05.2011 07:29
quelle
3
  1. "Das Schließen Ihrer App" verstößt gegen die Richtlinien von Apple. Während einige Apps dies tatsächlich tun, ist es eines der Dinge, die Ihre App ablehnen können. Es war gegen Apple-Richtlinien vor Multitasking und ist jetzt wegen Multitasking wichtiger. Die Benutzererfahrung ist, wenn sie nach einer Sperre oder in einer anderen Anwendung zum Telefon und Ihrer App zurückkehren, sollte Ihre Anwendung noch ausgeführt werden. Wenn Sie "Ihre App schließen", würde der Nutzer glauben, dass Ihre App abgestürzt ist, und wahrscheinlich werden sie entsprechende Rezensionen schreiben.

  2. Wenn Sie die Informationen in der App schützen möchten, wenn der Benutzer "weg" geht, sollten Sie in UIApplicationDelegate Protocol Reference . Particularly applicationDidEnterBackground: (wo Sie den Benutzer abmelden sollten) und applicationDidBecomeActive: (wo Sie den Benutzer wieder anmelden sollten).

Als letzte Anmerkung möchten Sie vielleicht "automatisch abmelden" wählen, aber dem Benutzer eine Einstellungsoption geben, um sie bei Bedarf angemeldet zu haben. Nicht so schwer, und die wenigen, die es wollen, können die Einstellung nutzen.

    
dredful 23.05.2011 23:02
quelle
2

Wenn ich mich richtig erinnere, wird die App in den Ruhezustand versetzt, wenn das Telefon gesperrt ist.

Seit der Einführung von Multitasking hat Apple das Verhalten so geändert, dass Ihre App beim Entriegeln / Umschalten eine bestimmte Nachricht gesendet hat.

Ich würde vorschlagen, einfach auf dieses Ding zu hören und dann an dieser Stelle erneut um Authentifizierung zu bitten.

Ich glaube nicht, dass du deine App einfach beenden kannst (noch solltest du), ich kenne keine App, die sich selbst umbringt ...

Tut mir leid, dass ich hier nicht zu spezifisch bin, aber ich hoffe, Sie werden jetzt wissen, wohin Sie gehen müssen ...

    
bnassler 23.05.2011 22:49
quelle

Tags und Links