2017-11-27 10 views
0

私はUWPベースのキオスクアプリを開発していますが、x時間が経過した後に各ビューをホームページに戻したいと思います。これを達成するための最良の方法は何でしょうか?私は、各ページに非アクティブカウンターを開始させ、カウンターが一旦家に帰るようになると考えていました。思考?UWPアプリでホーム画面に戻る最良の方法

+0

ページナビゲーションのための中心的なサービスにより、これは簡単に解決できます。ナビゲーションサービスの例はhttps://github.com/Microsoft/BikeSharing360_MobileApps/blob/master/src/BikeSharing.Clients.Core/Services/NavigationService.cs –

答えて

1

私は、各ページが非アクティブカウンタを開始し、カウンタが家に帰るために流れ落ちる一度

私はそれを行うには正しい方法だと思い有していると考えていました。

カウンタにはDispatcherTimerを使用してください。

無活動をチェックするには、あなたはWindow.Current.CoreWindow.PointerPressedPointerMoved、およびPointerReleasedとアプリのWindow.Current.CoreWindow

タッチとマウス入力上の様々なイベントでグローバルな入力を検出することができます。

キーボード入力:KeyUpKeyDown(ソフトキー)とCharacterReceived(&のテキスト候補で生成された文字の場合)。

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

です。これは、非アクティブ要件を処理していないようです。 – mason

+0

@mason「非アクティブ要件」とはどういう意味ですか? –

+0

アクティビティがない場合は、ホームページに戻る必要があります。 – mason