Spaces:
Sleeping
Sleeping
File size: 1,477 Bytes
c92b696 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | 'use client';
import { useEffect } from 'react';
export function OTABootstrap() {
useEffect(() => {
// Only run in native app
if (typeof window === 'undefined') return;
// Check if Capacitor is available
const checkCapacitor = async () => {
try {
const { Capacitor } = await import('@capacitor/core');
if (!Capacitor.isNativePlatform()) return;
const { CapacitorUpdater } = await import('@capgo/capacitor-updater');
const { App } = await import('@capacitor/app');
// Notify app is ready (required by Capgo)
await CapacitorUpdater.notifyAppReady();
console.log('OTA: App ready notified');
// Listen for app state changes
App.addListener('appStateChange', async ({ isActive }) => {
if (!isActive) return;
try {
await CapacitorUpdater.notifyAppReady();
} catch (e) {
console.error('OTA: rollback triggered', e);
}
});
// Set channel
await CapacitorUpdater.setChannel({ channel: 'production' });
// Listen for download complete
CapacitorUpdater.addListener('downloadComplete', (info) => {
console.log('OTA: Update downloaded, will apply on next launch', info);
});
} catch (e) {
// Not in Capacitor environment — do nothing
}
};
checkCapacitor();
}, []);
return null;
}
|