【问题标题】:UWP Xbox One page navigation when using WebView使用 WebView 时的 UWP Xbox One 页面导航
【发布时间】:2017-05-19 18:32:12
【问题描述】:

通常在 Xbox 上运行 UWP 应用时,控制器上的 B 按钮会自动处理,并将您返回到上一页。

我有一个包含 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 周围时不会响应。

当焦点框在 WebView(或 AdControl)周围且未启用控件时,我是否可以查明何时按下 GamePad 按钮(特别是 B),以便我可以手动调用后台导航?

【问题讨论】:

  • 当我们为 XBOX 应用程序使用鼠标模式时,B 按钮将很好地工作并返回。我在使用XY对焦模式时可以重现这个问题,我会对此问题做进一步的测试。

标签: c# webview uwp xbox-one


【解决方案1】:

由于此问题发生在应用程序使用 XY 焦点模式时,如果您的操作系统版本为 14393 或更高版本,解决此问题的一种方法是通过设置 RequiresPointer="WhenFocused 为包含 web 视图的此页面使用鼠标模式"如下:

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

并使用 app.xaml.cs 中的以下代码将另一个页面设置为 XY 焦点模式:

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

更多信息请尝试参考以下文章:
https://msdn.microsoft.com/en-us/windows/uwp/input-and-devices/designing-for-tv#mouse-mode

【讨论】:

  • 不幸的是,这意味着我必须在每个包含 AdControl 或 Webview 的页面上使用鼠标模式(这是每个页面!)。希望当 Xbox One 出现时,可以在创意者更新中解决这个问题
猜你喜欢
  • 2016-12-11
  • 2020-09-12
  • 2018-06-26
  • 2018-04-30
  • 2018-08-01
  • 2016-07-30
  • 2018-03-13
  • 2019-02-26
  • 2023-03-30
相关资源
最近更新 更多