35 lines
1.4 KiB
TypeScript
35 lines
1.4 KiB
TypeScript
import type { CapacitorConfig } from '@capacitor/cli';
|
|
|
|
const config: CapacitorConfig = {
|
|
appId: 'chat.vojo.app',
|
|
appName: 'Vojo',
|
|
webDir: 'dist',
|
|
// Bot widgets (docs/plans/bots_tab.md Phase 2): on Android, Capacitor's
|
|
// BridgeWebViewClient.shouldOverrideUrlLoading does NOT check
|
|
// request.isForMainFrame(), so any cross-origin iframe URL not in
|
|
// appAllowNavigationMask is hijacked into an external Intent.ACTION_VIEW
|
|
// and the iframe stays blank. Same-origin /widgets/... is safe (resolves
|
|
// to https://localhost under Capacitor). For HTTPS-hosted bot widgets,
|
|
// uncomment and edit the host list below BEFORE shipping a config.json
|
|
// that points at them:
|
|
//
|
|
// server: { allowNavigation: ['app.vojo.chat', '*.vojo.chat'] },
|
|
android: {
|
|
// Keep default: resolveServiceWorkerRequests = true
|
|
// SW is critical for authenticated Matrix media (MSC3916 / spec v1.11+)
|
|
//
|
|
// WebView bg color before first body paint. Without this the WebView
|
|
// paints transparent/black during bundle hydration, which combined with
|
|
// the post-splash window theme produced a visible black flash between
|
|
// the Android 12+ system splash and the in-app AuthSplashScreen mascot.
|
|
// Matches the native splash + AuthLayout + body backgrounds.
|
|
backgroundColor: '#0d0e11',
|
|
},
|
|
plugins: {
|
|
PushNotifications: {
|
|
presentationOptions: ['badge', 'sound', 'alert'],
|
|
},
|
|
},
|
|
};
|
|
|
|
export default config;
|