Modelo de app NFC Tools
Leia IDs de tags e registros NDEF, grave links, texto ou números de telefone em tags NFC.
Este é o modelo rodando ao vivo. Recursos do celular, como câmera, vibração e notificações, funcionam no app que você criar.
Recursos do celular que este modelo usa
Eles vêm da ponte JavaScript do FreeApp, que todo app criado com o Free HTML to APK inclui. Em um navegador comum, o modelo continua funcionando e as chamadas simplesmente não fazem nada.
Toast nativo curto.
Uma vibração única (padrão 50 ms) ou um padrão [desligado, ligado, desligado, ligado…].
Como o modelo os chama
if (FreeApp.nfc.status() === 'ready') {
const tag = await FreeApp.nfc.read();
console.log(tag.tagId, tag.records);
await FreeApp.nfc.write('https://example.com');
}
Deixe com a sua cara usando IA
Copie este prompt no ChatGPT, Gemini ou Claude, troque a ideia pela sua e cole a resposta de volta no editor. Ele já explica para a IA a estrutura do app e os recursos do celular.
Mostrar o prompt para a IA
Build a single-file mobile web app (index.html with inline CSS/JS) for Android WebView.
The app: NFC Tools — an NFC tag reader and writer that shows tag details and writes links, text or phone numbers. Read tag IDs and NDEF records, write links, text or phone numbers to NFC tags.
Requirements:
- Mobile-first, touch-friendly UI (min 44px tap targets), works in portrait, supports light and dark mode.
- Use <meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover"> and pad for env(safe-area-inset-*).
- Must work fully offline: no CDN or external scripts, fonts or images; persist data in localStorage.
The page runs inside an Android app that injects a native bridge as window.FreeApp. Available APIs:
- FreeApp.nfc.status(): 'ready' | 'disabled' | 'unsupported' | 'not_enabled_in_app'
- FreeApp.nfc.read(): Promise<{tagId, techs: string[], writable, maxSize, records: Array<{type: "text" | "uri" | "mime" | "unknown", value, mime?, lang?}>}> — waits for a tag; FreeApp.nfc.stop() cancels
- FreeApp.nfc.write(records: string | Array<{type: 'text' | 'uri' | 'mime', value: string, mime?: string}>): Promise<{written}>
- FreeApp.toast(message: string): void — short native toast
- FreeApp.vibrate(ms?: number | number[]): void — one-shot buzz (default 50 ms) or an [off, on, off, on…] pattern
Rules for the bridge:
- Always guard calls with `window.FreeApp &&` (or `if (window.FreeApp) { … }`) and provide a browser fallback so the page also works in a normal browser.
- The bridge may be injected after your script runs: do native setup inside `window.addEventListener('freeappready', …)` and also run it immediately if window.FreeApp already exists.
- Do not use alert/confirm for normal feedback; prefer FreeApp.toast when available.
Return the complete index.html in one code block.
My idea: [DESCRIBE YOUR APP IDEA HERE]Transforme em um app Android
- Toque em Editar e compilar online. O modelo abre no editor online.
- Mude o texto, as cores e o código e depois escolha um nome de app, um ícone e um nome do pacote.
- Compile. Você recebe um APK assinado para instalar e um AAB para o Google Play, grátis, sem conta e sem marca d'água.
Mais modelos de Dispositivo
Lanterna
Lanterna com um grande botão de ligar, com modos estroboscópio e SOS.
Laboratório de vibração
Toque e crie padrões de vibração personalizados.
Rastreador de localização
Coordenadas GPS, precisão e um rastreador de distância percorrida a pé.
Info do dispositivo
Modelo do celular, tela, sistema, memória e detalhes do app.
Monitor de bateria
Nível da bateria, estado de carregamento e um gráfico de histórico ao vivo.
Status da rede
Estado online/offline, tipo de conexão e registro de mudanças.