Aller au contenu principal

Intégration Capacitor

Ce guide décrit l'installation du bridge Capacitor du SDK Certificall et la première photo certifiée. Lisez d'abord la présentation du SDK pour la livraison, la clé API et les environnements.

Prérequis

Version minimale
Capacitor7
Node.js18
Android SDK24
Xcode15
CocoaPodsinstallé

1. Installer le package

Le bridge est livré sous forme de tarball npm (.tgz), qui embarque les binaires natifs iOS et Android.

  1. Copiez le fichier reçu dans un dossier vendor/ de votre application :
    mkdir -p vendor
    cp /chemin/vers/certificall-mobile-sdk-capacitor-<version>.tgz vendor/
  2. Déclarez la dépendance dans votre package.json. Le nom du package est certificall-mobile-sdk (c'est aussi le chemin d'import) :
    {
    "dependencies": {
    "certificall-mobile-sdk": "file:./vendor/certificall-mobile-sdk-capacitor-<version>.tgz"
    }
    }
  3. Installez et synchronisez les plateformes natives :
    npm install
    npx cap sync

2. iOS

Après npx cap sync, le plugin est copié dans le projet iOS. Ajoutez les descriptions d'usage dans Info.plist :

<key>NSCameraUsageDescription</key>
<string>Nécessaire pour la capture de photos certifiées.</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>Nécessaire pour certifier la localisation de la photo.</string>
<key>NSMotionUsageDescription</key>
<string>Nécessaire pour la validation de confiance de la capture.</string>

3. Android

Après npx cap sync, le plugin est copié dans le projet Android. Ajoutez les permissions dans AndroidManifest.xml :

<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

4. Première photo certifiée

import { CertificallTrust } from 'certificall-mobile-sdk';

// 1. Initialisation, une fois au démarrage
await CertificallTrust.initialize({
apiKey: '<votre clé API SDK>',
baseUrl: 'https://admin.certificall.app/certificall/', // préprod : https://dev.certificall.app/certificall/
appVersion: '1.0.0',
});

// 2. Permissions
await CertificallTrust.requestPermissions({
permissions: ['camera', 'location', 'motion'],
});

// 3. Capture
const result = await CertificallTrust.takePhoto({
reportToken: 'CHANTIER-2026-001', // votre référence métier
});

console.log('Certificat PDF :', result.pdfUrl);
console.log('Score de confiance :', result.score);

Le détail des paramètres et du résultat est dans la référence.

Surface de l'API

Toutes les méthodes sont exposées par l'objet CertificallTrust.

MéthodeRetourRôle
initialize(options)Promise<void>Initialise le SDK : apiKey, baseUrl, appVersion, debugMode (optionnel).
checkPermissions()Promise<PermissionStatus>État des permissions camera, location, motion, microphone.
requestPermissions({ permissions })Promise<PermissionStatus>Demande les permissions listées.
takePhoto(options)Promise<CertifiedPhotoResult>Ouvre la caméra et produit une photo certifiée. Options supplémentaires : quality, width, extractExif, source (camera ou gallery).
getDeviceSnapshot(options)Promise<DeviceSnapshot>Instantané de l'appareil ; includeLocation, includeMotion, includeDevMode.
getNetworkStatus()Promise<{ connected, connectionType }>État réseau courant.
startNetworkMonitoring() / stopNetworkMonitoring()Promise<void>Active ou arrête l'émission de l'événement networkStatusChange.
addListener('networkStatusChange', cb)PluginListenerHandleÉcoute les changements d'état réseau.
getCurrentPosition()Promise<LocationPosition>Position courante.
watchPosition(callback)Promise<string>Suivi de position ; renvoie un identifiant pour clearWatch.
getCurrentMotion()Promise<MotionData>Accélération et rotation courantes.
watchMotion(callback)Promise<string>Suivi des capteurs ; renvoie un identifiant pour clearWatch.
clearWatch({ id })Promise<void>Arrête un suivi de position ou de mouvement.
startVideoRecording(options) / stopVideoRecording()Promise<VideoResult>Enregistrement vidéo local ; le résultat contient le chemin du fichier et sa durée.

Dans le parcours standard, seules initialize, requestPermissions et takePhoto sont nécessaires. Les autres méthodes servent à enrichir vos propres écrans.

Exécution dans un navigateur

Une implémentation web de repli est fournie pour les fonctions de base. La photo certifiée nécessite une exécution sur iOS ou Android.

Dépannage

SymptômeCause probable et action
Plugin non détectéRelancez npm install puis npx cap sync.
Build iOS en erreurVérifiez pod install dans ios/App et la signature dans Xcode.
Build Android en erreurRelancez npx cap sync android et vérifiez le SDK Android local.
takePhoto renvoie { caseId: "0", itemId: "0" }baseUrl sans le suffixe /certificall/.
Permissions refuséesAppelez requestPermissions() avant takePhoto().