0
ログアウト機能をアプリケーションに追加して、最後の画面タッチから非アクティブ/アイドル時間のログアウトを取得します。最後の画面タッチからユーザーが非アクティブ/アイドル時間を検出したときにアプリケーションをログアウトする方法
この機能を実装する方法を教えてください。
あなたのコードにこれを追加する人もいます。
私の質問はこのコードを追加する場所です。
ログアウト機能をアプリケーションに追加して、最後の画面タッチから非アクティブ/アイドル時間のログアウトを取得します。最後の画面タッチからユーザーが非アクティブ/アイドル時間を検出したときにアプリケーションをログアウトする方法
この機能を実装する方法を教えてください。
あなたのコードにこれを追加する人もいます。
私の質問はこのコードを追加する場所です。
タイマーコードをすべて削除して、これを行うだけです。ユーザーがタップすると、アイドル状態のメソッドがX秒後に呼び出されるようにスケジュールします(performSelector: afterDelay:
を使用)。彼らがタップするたびに、スケジュールされたリクエスト(cancelPreviousPerformRequestsWithTarget:
を使用)をすべてキャンセルし、X秒間新しいリクエストをリクエストします。
int secondsUntilTimeout = 120;//time you want until they time-out.
[NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(idleTimerExceeded) object:nil];//cancel all previously scheduled time-out requests
[self performSelector:@selector(idleTimerExceeded) withObject:nil afterDelay:secondsUntilTimeout];//schedule a new time-out request
だからあなたの最終的なコードは次のようになります:最初のビューコントローラ(intialview)で
- (void)sendEvent:(UIEvent *)event {
[super sendEvent:event];
NSSet *allTouches = [event allTouches];
if ([allTouches count] > 0) {
UITouchPhase phase = ((UITouch *)[allTouches anyObject]).phase;
if (phase == UITouchPhaseBegan || phase == UITouchPhaseEnded) {
int secondsUntilTimeout = 120;//time you want until they time-out.
[NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(idleTimerExceeded) object:nil];//cancel all previously scheduled time-out requests
[self performSelector:@selector(idleTimerExceeded) withObject:nil afterDelay:secondsUntilTimeout];//schedule a new time-out request
}
}
}
- (void)idleTimerExceeded {
NSLog(@"idle time exceeded");
}
。 – phani
私は、これをuiApplicationクラスに追加してくれました。私は混乱しています –
各画面でタイマーを設定する機能を1つ作成できます。各画面でタイマーを0に設定します(またはイベントに触れる)。ユーザーがアイドル状態になり、アプリケーションに戻ったときに、指定された時間(たとえば10分)を超えた場合は、そのユーザーをログアウトすることができます。 – Rohan