ОК, у меня на Xbox One работает игра UWP на C ++ / CX / XAML.
В ней есть SwapChainPanel, содержащая оверлей WebView для пользовательского интерфейса и Canvas, где запускается игра.
Когда я запускаю, Webview работает в полноэкранном режиме, а Canvas ничего не делает.Контроллер без проблем перемещается по веб-интерфейсу: вверх / вниз / влево / вправо, «а» для выбора и «b» для возврата / приостановки.Эта навигация осуществляется с помощью API-интерфейса JS Gamepad, а не в режиме мыши.
Проблема возникает, когда я выбираю поле ввода в веб-представлении.Я могу выделить поле, я могу нажать A, я могу уйти, но у меня не появляется курсор в поле, и не появляется программная клавиатура.Это проблема;Я ничего не могу ввести в поле ввода.
Если, однако, я нажимаю кнопку «Xbox» на контроллере, чтобы открыть боковую панель Guide, затем снова нажимаю кнопку «Xbox», чтобы внезапно закрыть ее.курсор появляется в выбранном поле ввода, и нажатие «a» вызывает программную клавиатуру, и все в порядке.С этого момента любое текстовое поле, которое я выбрал, работает абсолютно нормально.
Итак, почему это не работает, когда я впервые загружаю приложение?Что я не делаю, что мне нужно сделать?
Я подозревал, что какая-то проблема с фокусировкой, но использование GotFocusEventHandler () для сообщения о событиях фокусировки просто показывало, что Webview получает фокус при запуске приложения, и то же самое при возврате с боковой панели Guide.Принудительный вызов webView-> Focus (FocusState :: Programmatic);когда поле ввода было подсвечено, у него не было зарегистрированного события фокуса, возможно потому, что веб-просмотр уже был в фокусе.
При дальнейшем исследовании страница работает нормально, если я получаю к ней доступ через URL-адрес HTTP, но не работает, если яиспользовать HTTPS.Я не вижу явных сообщений об ошибках, и обе версии URL-адреса присутствуют в разделе URI содержимого манифеста