Telefone LB v2
O preço original era: $99.00.$49.00O preço atual é: $49.00.
Um telefone avançado para FiveM com recursos exclusivos e bom desempenho.
Demonstração por telefone: https://lbscripts.com/phone
- Qualidade Premium
- Totalmente Open Source
- Pagamentos Seguros
- Garantia de satisfação
- Garantia de devolução do dinheiro em 30 dias
Aplicativos personalizados
O LB Phone permite adicionar aplicativos que possuem uma interface de usuário ou que simplesmente acionam funções ao abrir o aplicativo. Para adicionar um aplicativo que aciona uma função ao abri-lo, acesse lb-phone/config/config.lua e adicione o aplicativo ao Config.CustomApps tabela, assim:
Config.CustomApps = { ["app_identifier"] = { -- Um identificador exclusivo para o aplicativo, não mostrado ao usuário nome = "Nome do aplicativo", -- O nome do aplicativo, mostrado ao usuário description = "Descrição do aplicativo", -- A descrição do aplicativo, mostrada ao usuário desenvolvedor = "LB Phone", -- OPCIONAL o desenvolvedor do aplicativo defaultApp = true, -- OPCIONAL se definido como true, o aplicativo deve ser adicionado sem precisar baixá-lo, jogo = falso, -- OPCIONAL se definido como verdadeiro, o aplicativo será adicionado à seção do jogo tamanho = 59812, -- OPCIONAL em kB images = { "https://example.com/photo.jpg" }, -- matriz OPCIONAL de imagens para o aplicativo na app store ui = "nome-do-recurso/ui/index.html", -- OPCIONAL ícone = "https://cfx-nui-" .. GetCurrentResourceName() .. "/ui/icon.png", -- Ícone de aplicativo OPCIONAL preço = 0, -- OPCIONAL, Faça os jogadores pagarem com dinheiro do jogo para baixar o aplicativo paisagem = falso, -- OPCIONAL, se definido como verdadeiro, o aplicativo será exibido no modo paisagem keepOpen = true, -- OPCIONAL, se definido como true, o aplicativo não fechará quando o player abrir o aplicativo (funciona somente se ui não estiver definido) onUse = function() -- função OPCIONAL a ser chamada quando o aplicativo for aberto -- faça alguma coisa fim, onServerUse = function(source) -- função OPCIONAL do lado do servidor a ser chamada quando o aplicativo for aberto -- faça alguma coisa fim }}
Aplicativos personalizados usando UI
Se você quiser usar uma IU personalizada para seu aplicativo, você precisa criar um script separado e fornecer o caminho do arquivo HTML e enviá-lo como interface do usuário.
A maneira recomendada de criar um aplicativo com interface de usuário é criá-lo usando exportações. Temos aplicativos de modelo que você pode usar como referência.
Se o usuário tiver o modo escuro ativado, o tema de dados será definido como escuro. Caso contrário, será definido como claro.
Adicionando o aplicativo
Para adicionar o aplicativo, use o Adicionar aplicativo personalizado exportar.
Removendo o aplicativo
Para remover o aplicativo, use o RemoverCustomApp exportar.
Enviando uma mensagem para a IU
Para enviar uma mensagem para a IU, você precisa usar o Enviar mensagem de aplicativo personalizada export em vez de usar SendNUIMessage. Você ouviria da mesma forma no frontend.
Componentes e funções importados
Quando o aplicativo é carregado no telefone, algumas funções são importadas para o globalIsso objeto.
| Nome | Tipo | Descrição |
|---|---|---|
| Nome do recurso | corda | O nome do recurso que adicionou o aplicativo personalizado |
| nome do aplicativo | corda | O nome do aplicativo |
| configurações | objeto | As configurações do telefone |
| componentes | objeto | Útil componentes para o aplicativo |
Componentes
Os seguintes componentes podem ser acessados via globalThis.componentes. Você pode visualizar um arquivo de declaração TypeScript em lb-reactts/ui/src/components.d.ts.
criarGameRender
Cria uma renderização do jogo, que renderiza o jogo em uma tela. Isso é usado para criar uma câmera no seu aplicativo e deve ser usado com o exportações de câmeras.
const gameRender = componentes.createGameRender(canvas) // define a proporção da telagameRender.resizeByAspect(9/16) // pausa a renderizaçãogameRender.pause() // retomar a renderizaçãogameRender.resume() // tire uma fotoconst blob: Blob = aguarda gameRender.takePhoto() // gravar um vídeogravador const = gameRender.startRecording((blob: Blob) => { const vídeo = URL.createObjectURL(blob)}) aguardar nova Promessa((resolver) => setTimeout(resolver, 5000)) gravador.parar() // destrói a renderização do jogogameRender.destroy()
uploadMídia
Carrega mídia e retorna uma promessa com o URL.
// O tipo de upload pode ser 'Vídeo' | 'Imagem' | 'Áudio'const url = await componentes.uploadMedia('Vídeo', blob)
salvar na galeria
Salva uma URL para a galeria e retorna uma promessa com o ID
const id = aguardar componentes.saveToGallery(url)
definirSeletorDeCor
componentes.setColorPicker({ onSelect(cor) {}, onClose(cor) {}})
definir pop-up
componentes.setPopUp({ título: 'Menu pop-up', descrição: 'Confirme sua escolha', botões: [ { título: 'Cancelar', cor: 'vermelho', cb: () => { console.log('Cancelar') } }, { título: 'Confirmar', cor: 'azul', cb: () => { console.log('Confirmar') } } ]})
definirMenuContexto
componentes.setContextMenu({ título: 'Menu de contexto', botões: [ { título: 'Notificação por telefone', cor: 'azul', cb: () => { sendNotification({ título: notificationText }) } }, { título: 'Notificação GTA', cor: 'vermelho', cb: () => { fetchNui('drawNotification', { mensagem: notificationText }) } } ]})
setContactSelector
componentes.setContactSelector({ onSelect(contato) { componentes.setPopUp({ título: 'Contato selecionado', descrição: `${contato.nome ?? '??'} ${contato.sobrenome ?? ''} ${contato.número}`, botões: [ { título: 'OK' } ] }) }})
setShareComponent
Veja o Exportação AirShare para quais dados enviar.
componentes.setShareComponent({ tipo: 'imagem', dados: { isVideo: falso, origem: 'https://docs.lbscripts.com/images/icons/icon.png' }})
definirEmojiPickerVisível
componentes.setEmojiPickerVisible({ onSelect: (emoji) => { componentes.setEmojiPickerVisible(falso) componentes.setPopUp({ título: 'Emoji selecionado', descrição: emoji.emoji, botões: [ { título: 'OK' } ] }) }})
definirGifPickerVisível
componentes.setGifPickerVisible({ onSelect(gif) { componentes.setPopUp({ título: 'GIF selecionado', anexo: { fonte: gif }, botões: [ { título: 'OK' } ] }) }})
conjuntoGaleria
componentes.setGallery({ includeVideos: verdadeiro, includeImages: verdadeiro, allowExternal: verdadeiro, multiSelect: falso, onSelect(dados) { componentes.setPopUp({ título: 'Mídia selecionada', anexo: { src: Array.isArray(data) ? data[0].src : data.src }, botões: [ { título: 'OK' } ] }) }})
definir imagem em tela cheia
componentes.setFullscreenImage('https://docs.lbscripts.com/images/icons/icon.png')
setHomeIndicatorVisível
componentes.setHomeIndicatorVisible(verdadeiro)
Funções
fetchNui(evento, dados, scriptName?)
fetchNui('teste', { foo: 'barra'})
onNuiEvent
Ouça as mensagens NUI enviadas via Enviar mensagem de aplicativo personalizada
onNuiEvent('teste', (dados) => { console.log(dados)})
emAlterarConfigurações
Ouça as alterações nas configurações
onSettingsChange((novasConfigurações) => { console.log(novasConfigurações)})
criarChamada
criarChamada({ número: '1234567890', // você pode enviar `empresa` em vez de `número` para ligar para uma empresa videochamada: falso, hideNumber: falso})









