Prise en main
Copiez un prompt de configuration incluant les étapes d'installation et le guide markdown complet pour ce plugin.
Set up this Capacitor plugin in the project.
Use the package manager already used by the project.
Install these package(s): `@capgo/capacitor-device-info`
Run the required Capacitor sync/update step after installation.
Read this markdown guide for the full setup steps: https://raw.githubusercontent.com/Cap-go/website/refs/heads/main/apps/docs/src/content/docs/docs/plugins/device-info/getting-started.mdx
Use that guide for platform-specific steps, native file edits, permissions, config changes, imports, and usage setup.
If that guide references other docs pages, read them too.
Compatibilité
Section intitulée « Compatibilité »@capgo/capacitor-device-info nécessite Capacitor 8 ou ultérieur (@capacitor/core >=8.0.0).
Installer
Section intitulée « Installation »Vous pouvez utiliser notre configuration assistée par IA pour installer le plugin. Ajoutez les skills Capgo à votre outil d'IA avec la commande suivante :
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-pluginsUtilisez ensuite le prompt suivant :
Use the `capacitor-plugins` skill from `Cap-go/capgo-skills` to install the `@capgo/capacitor-device-info` plugin in my project.Pour une configuration manuelle, installez le package et synchronisez les projets natifs :
npm install @capgo/capacitor-device-infonpx cap syncImporter
Section intitulée « Import »import { DeviceInfo } from '@capgo/capacitor-device-info';Démarrage rapide
Section intitulée « Démarrage rapide »import { DeviceInfo } from '@capgo/capacitor-device-info';
const result = await DeviceInfo.getInfo();console.log(result);Exemple : startMonitoring
Section intitulée « Example: startMonitoring »import { DeviceInfo } from '@capgo/capacitor-device-info';
const result = await DeviceInfo.startMonitoring();console.log(result);Exemple : stopMonitoring
Section intitulée « Exemple : stopMonitoring »import { DeviceInfo } from '@capgo/capacitor-device-info';
const result = await DeviceInfo.stopMonitoring();console.log(result);Erreurs courantes
Section intitulée « Erreurs courantes »- Écouteurs: supprimez les handles lors du démontage des écrans.
- Sync native : exécuter
npx cap syncaprès les mises à jour du plugin. - Source de vérité : fiez-vous
src/definitions.tsau repo GitHub.
Lire un snapshot
Section intitulée « Lire un snapshot »const snapshot = await DeviceInfo.getInfo();
console.log(snapshot.cpu.cores);console.log(snapshot.memory.usedPercent);console.log(snapshot.storage.freeBytes);console.log(snapshot.sensors?.pressureHpa);cpu.usagePercent repose sur des deltas. Le premier échantillon natif peut l'omettre ; appelez getInfo() réessayez plus tard ou utilisez le monitoring pour recevoir l'utilisation CPU renseignée après le second échantillon.
Mises à jour en flux
Section intitulée « Streamer les mises à jour »const handle = await DeviceInfo.addListener('deviceInfoUpdate', (sample) => { console.log(sample.sequence, sample.elapsedMs); console.log(sample.cpu.usagePercent); console.log(sample.sensors?.readings);});
const session = await DeviceInfo.startMonitoring({ intervalMs: 1000, emitImmediately: true,});
console.log(session.intervalMs, session.startedAt);Comportement du monitoring
Section intitulée « Comportement du monitoring »intervalMspar défaut sur1000millisecondes. Les valeurs inférieures à250millisecondes sont limitées à250.emitImmediatelypar défaut surtrue.- Définissez
durationMsousampleCountpour arrêter automatiquement le monitoring. - Appeler
startMonitoring()pendant que le monitoring est actif, redémarre la session avec les nouvelles options. - Chaque
deviceInfoUpdatecomprend un index commençant à 1sequence, de la sessionstartedAthorodatage, etelapsedMs.
Stop updates and remove listeners
Section intitulée « Arrêter les mises à jour et supprimer les listeners »await DeviceInfo.stopMonitoring();await handle.remove();
// Or remove every listener registered on this plugin:await DeviceInfo.removeAllListeners();Vérifier l'état du monitoring
Section intitulée « Vérifier l'état du monitoring »const state = await DeviceInfo.isMonitoring();
if (state.monitoring) { console.log(state.samplesEmitted);}Intégrer les champs de capteurs
Section intitulée « Configurer les champs des capteurs »const { sensors, cpu, gpu } = await DeviceInfo.getInfo();
console.log(cpu.temperatureCelsius);console.log(gpu?.temperatureCelsius);console.log(sensors?.batteryTemperatureCelsius);console.log(sensors?.ambientTemperatureCelsius);console.log(sensors?.relativeHumidityPercent);console.log(sensors?.pressureHpa);console.log(sensors?.illuminanceLux);console.log(sensors?.proximityDistanceCm);console.log(sensors?.availableSensors);Les champs de capteurs sont optionnels. Ils ne sont présents que lorsque l'appareil, l'OS et le sandbox de l'app exposent cette métrique.
Notes sur les plateformes
Section intitulée « Notes sur les plateformes »- iOS ne nécessite aucune permission pour les métriques exposées. Il indique la disponibilité du capteur CoreMotion, mais pas la température brute du CPU ou du GPU.
- Android ne nécessite aucune permission pour les métriques exposées. Les températures du CPU et du GPU proviennent de lectures best-effort des zones thermiques.
- La prise en charge Web est fournie à titre indicatif et renvoie des tableaux de capteurs vides, car les navigateurs n'exposent pas de manière cohérente les capteurs natifs de l'appareil.
Référence API
Section intitulée « Référence API »| Méthode | Retourne | Notes |
|---|---|---|
getInfo() | Promise<DeviceInfoSnapshot> | Lit une seule capture instantanée. |
startMonitoring(options?) | Promise<StartMonitoringResult> | Démarrage des captures périodiques, ou redémarrage d'une session active avec de nouvelles options. |
stopMonitoring() | Promise<StopMonitoringResult> | Arrête la session active. |
isMonitoring() | Promise<MonitoringState> | Retourne l'état actuel de la session. |
addListener('deviceInfoUpdate', listener) | Promise<PluginListenerHandle> | Enregistre un écouteur de captures périodiques. |
removeAllListeners() | Promise<void> | Supprime tous les écouteurs enregistrés sur le plugin. |
getPluginVersion() | Promise<PluginVersionResult> | Lit la version du plugin natif. |
PluginListenerHandle est fourni par Capacitor et possède remove() pour supprimer ce listener spécifique.
Types de snapshots
Section intitulée « Types de snapshots »interface CpuInfo { cores: number; activeCores?: number; architecture?: string; model?: string; usagePercent?: number | null; maxFrequencyHz?: number; temperatureCelsius?: number;}
interface MemoryInfo { totalBytes?: number; freeBytes?: number; usedBytes?: number; usedPercent?: number; appUsedBytes?: number; appLimitBytes?: number; lowMemory?: boolean; pressure?: 'normal' | 'warning' | 'critical' | 'unknown';}
interface StorageInfo { totalBytes?: number; freeBytes?: number; usedBytes?: number; usedPercent?: number;}
interface GpuInfo { api?: 'metal' | 'opengl' | 'webgl' | 'unknown'; vendor?: string; renderer?: string; version?: string; maxTextureSize?: number; temperatureCelsius?: number;}
type ThermalState = 'nominal' | 'fair' | 'serious' | 'critical' | 'unknown';
interface DeviceInfoSnapshot { timestamp: number; platform: 'ios' | 'android' | 'web'; cpu: CpuInfo; memory: MemoryInfo; storage: StorageInfo; gpu?: GpuInfo; thermalState?: ThermalState; lowPowerMode?: boolean; sensors?: OnboardSensorsInfo;}Les tailles sont en octets, maxFrequencyHz est en hertz, et les valeurs de température sont en Celsius. usagePercent peut être null jusqu'à ce que la plateforme ait assez d'échantillons pour le calculer.
Types de capteurs
Section intitulée « Types de capteurs »interface OnboardSensorDescriptor { type: string; name?: string; vendor?: string; platformType?: number; maximumRange?: number; resolution?: number; powerMilliamp?: number; minDelayMicroseconds?: number; wakeUp?: boolean;}
interface OnboardSensorReading { type: string; unit: string; value: number; name?: string; timestamp?: number;}
interface OnboardSensorsInfo { availableSensors?: OnboardSensorDescriptor[]; readings?: OnboardSensorReading[]; batteryTemperatureCelsius?: number; ambientTemperatureCelsius?: number; relativeHumidityPercent?: number; pressureHpa?: number; illuminanceLux?: number; proximityDistanceCm?: number;}Les horodatages des lectures de capteurs sont en millisecondes Unix epoch. Les unités courantes sont le degré Celsius, le pourcentage, l'hPa, le lux et le centimètre.
Types de monitoring
Section intitulée « Types de surveillance »interface MonitoringOptions { intervalMs?: number; durationMs?: number; sampleCount?: number; emitImmediately?: boolean;}
interface StartMonitoringResult { monitoring: boolean; intervalMs: number; startedAt: number;}
interface StopMonitoringResult { monitoring: boolean;}
interface MonitoringState { monitoring: boolean; intervalMs?: number; startedAt?: number; samplesEmitted?: number;}
interface DeviceInfoUpdate extends DeviceInfoSnapshot { sequence: number; startedAt: number; elapsedMs: number;}
interface PluginVersionResult { version: string;}startedAt, timestamp, et elapsedMs sont en millisecondes. sequence commence à 1 pour chaque session de surveillance.
Source de vérité
Section intitulée « Source de vérité »Cette référence suit l’API public dans le src/definitions.ts. Mettez à jour cette page lorsque cette source change.
Continuer depuis Getting Started
Section intitulée « Continuer après Prise en main »Si vous utilisez Prise en main pour les diagnostics de l’appareil, connectez-l’avec @capgo/capacitor-device-info pour l'aperçu, Utiliser @capgo/capacitor-device-info pour la page du tutoriel, @capgo/capacitor-barometer pour des mesures de pression ciblées, et @capgo/capacitor-light-sensor pour des mesures précises du capteur de luminosité.