import type { CapacitorConfig } from '@capacitor/cli'; /** * O APK e uma casca fina: a WebView carrega a instancia pela rede em vez de * servir uma copia do app web embutida no pacote. * * Duas razoes, nesta ordem: * * 1. Atualizacao. O site muda a cada deploy. Com os arquivos embutidos, cada * mudanca no app web exigiria republicar e reinstalar o APK a mao — nao ha * updater automatico no Android como o electron-updater faz no desktop. * Pela rede, o telefone recebe a mesma versao que o navegador, na hora. * * 2. Origem. O cliente fala com /api e /ws na mesma origem. Embutido, a pagina * rodaria em https://localhost e toda chamada viraria cross-origin, o que * obrigaria a abrir CORS no servidor para uma origem que qualquer app pode * reivindicar. * * O preco e nao funcionar offline, o que para um app de chat em tempo real nao * e perda: sem servidor nao ha o que mostrar. A pagina em public/ so aparece se * a WebView nao alcancar o servidor. */ const config: CapacitorConfig = { appId: 'com.resenhacord.app', appName: 'Resenhacord', webDir: 'public', android: { // A captura de audio e video da WebView e concedida pelo bridge do // Capacitor, que traduz o pedido do getUserMedia para a permissao nativa. allowMixedContent: false, }, server: { url: 'https://chat.resenha.website', // Sem cleartext: a instancia e servida por HTTPS (Caddy), e o WebRTC do // LiveKit exige contexto seguro de qualquer forma. cleartext: false, androidScheme: 'https', }, }; export default config;