Full-screen-nui

From FiveM Wikipedia

Полноэкранный 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_devToolsF8

Фокус 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();
    }
});

Пользовательские интерфейсы с NUI