2017-11-27 1 views
0

Ich entwickle eine UWP-basierte Kiosk-App, und ich möchte, dass jede Ansicht auf die Homepage nach x Zeit zurückgegeben wird. Was wäre die beste Methode, um dies zu erreichen? Ich dachte daran, jede Seite einen Inaktivitätszähler starten zu lassen, und sobald der Zähler abläuft, um nach Hause zurückzukehren. Gedanken?Beste Methode für die Rückkehr zum Startbildschirm in UWP App

+0

Mit einem zentralen Service für die Seitennavigation ist dies einfach zu lösen. Ein Beispiel für einen Navigationsdienst ist hier https://github.com/Microsoft/BikeSharing360_MobileApps/blob/master/src/BikeSharing.Clients.Core/Services/NavigationService.cs –

Antwort

1

Ich dachte an jeder Seite einen Inaktivitätszähler beginnt mit und einmal der Zähler läuft hinunter nach Hause gehen

Ich denke, dass der richtige Weg ist, es zu tun.

Verwenden Sie DispatcherTimer für den Zähler.

Inaktivität zu überprüfen, Sie Window.Current.CoreWindow globalen Eingang mit verschiedenen Veranstaltungen auf der App

Touch-und Mauseingaben mit Window.Current.CoreWindow.PointerPressed, PointerMoved und PointerReleased der erkennen können.

Tastatureingabe: KeyUp und KeyDown (Softkeys) und CharacterReceived (für über Akkorde & Textvorschläge erzeugt Zeichen).

DispatcherTimer dispatcherTimer; 

public NewPage() 
{ 
    dispatcherTimer = new DispatcherTimer(); 
    dispatcherTimer.Tick += dispatcherTimer_Tick; 
    dispatcherTimer.Interval = new TimeSpan(0, 0, 10); 
    dispatcherTimer.Start(); 
    CheckIdle(); 
} 

public void dispatcherTimer_Tick(object sender, object e) 
{ 
    dispatcherTimer.Tick -= dispatcherTimer_Tick; 
    dispatcherTimer.Stop(); 
    Frame.Navigate(typeof(MainPage)); 
} 

private void CheckIdle() 
{ 
    //Calling DispatcherTimer.Start() will reset the timer interval 
    Window.Current.CoreWindow.PointerMoved += (s, e) => dispatcherTimer.Start(); 
    Window.Current.CoreWindow.PointerPressed += (s, e) => dispatcherTimer.Start(); 
    Window.Current.CoreWindow.PointerReleased += (s, e) => dispatcherTimer.Start(); 
    Window.Current.CoreWindow.PointerWheelChanged += (s, e) => dispatcherTimer.Start(); 
    Window.Current.CoreWindow.KeyDown += (s, e) => dispatcherTimer.Start(); 
    Window.Current.CoreWindow.KeyUp += (s, e) => dispatcherTimer.Start(); 
    Window.Current.CoreWindow.CharacterReceived += (s, e) => dispatcherTimer.Start(); 
} 
+0

Es scheint, dass Sie die Inaktivitätsanforderung nicht behandelt haben. – mason

+0

@mason Was meinst du mit "Inaktivitätsanforderung"? –

+0

Es sollte nur zurück zur Homepage navigieren, wenn keine Aktivität stattgefunden hat. – mason

Verwandte Themen