Configurare e Ricompilare l'App Android
Punta l'app verso il tuo backend modificando un solo file, poi decidi se ti serve davvero una ricompilazione.
1. Modificare www/settings.ini
xCRUD_Nova_Android_App/www/settings.ini è composto da semplici coppie chiave = valore raggruppate in [sezioni]. Come dice il commento di intestazione del file stesso: "Modifica questo file e ricarica (o risincronizza l'app) - niente qui richiede una ricompilazione o una modifica al codice dell'app stessa."
[backend]
url = https://yourdomain.com/xcrud_8
demo_username = admin
demo_password = admin123
[branding]
app_name = xCRUD Nova
tagline = Your xCRUD Nova/Pro dashboard, on your phone.
[purchase]
url =
label =
[documentation]
url = https://yourdomain.com/xcrud_8/docs
label = Documentation
| Chiave | Significato |
|---|---|
[backend] url | Obbligatoria. Il server xCRUD Nova/Pro con cui comunica questa app - un URL assoluto, senza slash finale, es. https://yourdomain.com/xcrud_8. Tutto ciò che l'app mostra (login, poi la dashboard dal vivo) viene recuperato da questo unico URL. Lasciala vuota e l'app mostra un avviso di configurazione invece di una schermata vuota. |
[backend] demo_username / demo_password | Credenziali di login demo mostrate come suggerimento sotto il modulo di login. Lasciale entrambe vuote una volta puntato questo verso il tuo backend reale, non demo. |
[branding] app_name | Il nome dell'app mostrato nell'interfaccia. |
[branding] tagline | Un breve slogan mostrato sotto il nome dell'app. |
[purchase] url | Mostrato come pulsante flottante di invito all'azione su ogni schermata. Impostala su un valore vuoto per nascondere completamente il pulsante - la maggior parte di chi self-hosta lo vorrà vuoto, dato che era una funzionalità marketing/demo di valutazione, non qualcosa di cui la copia installata di un acquirente ha tipicamente bisogno. Svuotarla disattiva anche il banner "LIVE DEMO". |
[purchase] label | Testo del pulsante. Predefinito "Buy the xCRUD Nova server files" se lasciato vuoto mentre url è impostato. |
[documentation] url | Mostrato come secondo link flottante, appena sopra il pulsante di acquisto. Utile sia che questa copia sia una demo marketing sia l'installazione reale di un acquirente - impostala su un valore vuoto per nasconderlo. |
[documentation] label | Testo del link, es. "Documentation". |
2. Test rapido vs. ricompilazione completa
Due livelli di impegno molto diversi, a seconda di cosa è cambiato:
- Test rapido - basta ricaricare. Modificare solo
settings.ininon richiede alcuna ricompilazione né modifiche al codice dell'app - ricarica la WebView (o risincronizza l'app) e il nuovo URL del backend/branding ha effetto immediatamente. - Ricompilazione completa dell'APK. Necessaria solo quando modifichi elementi del guscio nativo controllati da Capacitor stesso - l'icona dell'app, la splash screen, i permessi,
appId/appNameincapacitor.config.json, o i file stessi del progetto Android. Sincronizza gli asset web nel progetto nativo, poi compila:
npx cap sync android
Seguita dalla compilazione dell'APK, sia tramite Android Studio (apri la cartella android/ e Build > Build APK), sia da riga di comando con Gradle:
cd android
./gradlew assembleDebug
3. CORS - di solito nulla da cambiare
L'XcrudConfig::$allowedOrigins del backend include già per impostazione predefinita https://localhost (l'origine WebView predefinita di Capacitor su Android) e http://localhost:8081 (l'origine propria del server di sviluppo desktop di remote_frontend_demo):
public static array $allowedOrigins = ['http://localhost:8081', 'https://localhost', 'http://localhost', 'http://127.0.0.1'];
Ciò significa che la maggior parte di chi self-hosta, puntando l'app standard verso il proprio backend, non ha bisogno di ALCUNA modifica CORS. Devi toccare $allowedOrigins solo se:
- Personalizzi
androidScheme/hostnamedi Capacitor allontanandoti dal predefinito, cambiando l'origine propria della WebView, oppure - Distribuisci il frontend statico
www/separatamente su un dominio reale (invece di caricarlo dall'interno del guscio dell'app), che poi chiama il backend cross-origin da quel dominio.
Vedi Frontend Disaccoppiati e CORS per il riferimento completo su $allowedOrigins/$forceApiUrl.