2017-01-05 3 views
1

Обычно при запуске приложения UWP на Xbox кнопка B на контроллере обрабатывается автоматически и возвращает вас на предыдущую страницу.UWP Xbox Одностраничная навигация при использовании WebView

У меня есть страница, содержащая WebView, когда вы используете кнопки направления, чтобы разместить блок фокусировки вокруг этого элемента управления, кнопка B больше не отвечает. Вы можете использовать кнопку A, чтобы взять управление WebView и отобразить указатель, а кнопка B затем вернет фокус назад, как указано выше, но я не могу вернуться назад с помощью кнопки B, пока вы не переместите блок фокусировки на другой элемент управления. Это также происходит с помощью AdControl, поскольку это использует WebView.

Я попытался захватить KeyDown:

Window.Current.CoreWindow.KeyDown += CoreWindow_KeyDown; 

private void CoreWindow_KeyDown(Windows.UI.Core.CoreWindow sender, Windows.UI.Core.KeyEventArgs args) 
{ 
    Debug.WriteLine(args.VirtualKey.ToString()); 
} 

Это отвечает GamePadB, GamePadX и т.д., но не тогда, когда окно фокус вокруг WebView.

В любом случае, я могу узнать, когда кнопки GamePad (в частности, B) нажаты, когда поле фокусировки находится вокруг WebView (или AdControl), и элемент управления не задействован, поэтому я могу вручную активировать навигацию назад.

+0

Когда мы используем режим мыши для приложения XBOX, кнопка B будет работать очень хорошо и перемещаться назад. Я могу воспроизвести эту проблему при использовании режима фокусировки XY, я продолжу тестирование этой проблемы. –

ответ

0

Поскольку эта проблема возникает при использовании режима фокусировки XY для приложения, если ваша версия ОС 14393 или выше, одним из способов решения этой проблемы является использование режима мыши для этой страницы, который содержит веб-представление, с помощью параметра RequiresPointer = " WhenFocused»следующим образом:

<Page RequiresPointer="WhenFocused"> 
... 
</Page> 

и установить другую страницу в режим фокусировки XY, используя следующий код в App.xaml.cs:

this.RequiresPointerMode = 
    Windows.UI.Xaml.ApplicationRequiresPointerMode.WhenRequested; 

для получения дополнительной информации, пожалуйста, попробуйте обратиться к нижеследующая статья:
https://msdn.microsoft.com/en-us/windows/uwp/input-and-devices/designing-for-tv#mouse-mode

+0

К сожалению, это означает, что мне нужно будет использовать режим мыши на каждой странице, содержащей AdControl или Webview (это каждая страница!). Надеюсь, что что-то можно сделать, чтобы исправить это в обновлении Creators, когда это достигнет Xbox One –

 Смежные вопросы

  • Нет связанных вопросов^_^