Full-screen-nui
Полноэкранный NUI
Наиболее распространенным вариантом использования NUI является полноэкранная «страница пользовательского интерфейса», которая накладывается поверх игры и может иметь или не иметь фокус ввода. В настоящее время они поддерживаются как на FiveM, так и на RedM и являются частью базового уровня гражданской структуры. поддержка.
Следующие нативные элементы связаны с использованием полноэкранного NUI:
Настройка полноэкранной nuI-страницы
Чтобы назначить ресурсу полноэкранную NUI-страницу, в настоящее время необходимо указать одну в манифесте ресурса для ресурса, содержащего страницу пользовательского интерфейса, как показано ниже:ui_page
-- specify the root page, relative to the resource
ui_page 'main.html'
-- every client-side file still needs to be added to the resource packfile!
files {
'main.html',
'build/main.js',
}
-- a page can also be hosted externally
ui_page 'https://ui-frontend.cfx.example.com/b20210501/index.html'
Ссылки на другие ресурсы
Система NUI регистрирует область протокола для файлов ресурсов. Таким образом, можно ссылаться на файл в ресурсе следующим образом:https://cfx-nui-
<script type="text/javascript" src="https://cfx-nui-my-resource/production.js" async></script>
Ранее это было известно как , но это больше не безопасный контекст в новых версиях браузера.nui://
Инструменты разработчика
Инструменты удаленной отладки CEF доступны на http://localhost:13172/ до тех пор, пока игра бег. Вы можете использовать любой браузер на основе Chromium, чтобы легко получить доступ к этим инструментам.
Кроме того, его можно открыть с помощью команды в консоли игры, предполагая, что включен режим разработчика.nui_devTools
F8
Фокус NUI
Существует ограниченный стек фокусировки для ресурсов NUI, вы можете установить фокус на текущий ресурс с помощью собственного SET_NUI_FOCUS, который установит фокус клавиатуры и / или фокус курсора мыши в зависимости от приведены аргументы.
Последний сфокусированный ресурс будет упорядочен поверх стека фокусировки, и ресурсы в настоящее время реализованы. как полноэкранные iframes: это означает, что нет перехода по ссылкам между ресурсами.
Сообщения NUI
Вы можете отправить сообщение на NUI-страницу текущего ресурса с помощью удобная оболочка SendNUIMessage, которая кодирует строку JSON для вас.
Например:
-- Lua
SendNUIMessage({
type = 'open'
})
// browser side
window.addEventListener('message', (event) => {
if (event.data.type === 'open') {
doOpen();
}
});