Skip to content

Référence API SDK

This content is not available in your language yet.

Référence complète des méthodes exposées par @pionne/react-native v0.3.0+.

Initialise le SDK. À appeler une seule fois, au démarrage de l’app.

import { Pionne } from '@pionne/react-native';
Pionne.init({
token: 'pio_live_...',
release: '1.0.0',
environment: 'production',
tags: { tier: 'pro' },
sampleRate: 1,
scrubPii: true,
captureScreenshot: false,
breadcrumbs: true,
});
ChampTypeDefaultDescription
tokenstringRequis. Token projet pio_live_...
releasestring?autoVersion release, par défaut récupère expo-application
environmentstring?'production'production, development, staging
tagsRecord<string, string | number | boolean>?{}Tags ajoutés à chaque event
sampleRatenumber?1Entre 0 et 1, fraction d’events envoyés
scrubPiiboolean | Array<{re: RegExp, replace: string}>?trueVoir PII
captureScreenshotboolean?falseVoir Screenshots
screenshotQualitynumber?0.5JPG quality 0..1
breadcrumbsboolean | { console?: boolean; fetch?: boolean }?trueVoir Breadcrumbs
beforeSend(event) => event | nullHook de filtre/transformation
enabledboolean?trueDésactive complètement l’envoi si false
apiUrlstring?'https://api.pionne.app'Override pour self-host

Capture une erreur explicitement. Retourne void.

try {
await fetchUser();
} catch (err) {
Pionne.captureException(err, { userId: 42, screen: 'Profile' });
}

Envoie un event level: 'info' (ou personnalisable via extra.level).

Pionne.captureMessage('Cart abandoned', { items: 3, level: 'warning' });

Associe un identifiant anonyme à tous les events suivants. N’envoie jamais d’email/nom.

Pionne.setUser('user_a8f2c1');

Pour reset : Pionne.setUser(null).

Merge des tags globaux.

Pionne.setTags({ ab_test: 'variant_b', plan: 'pro' });

Active/désactive l’envoi à chaud (utile pour un consent banner RGPD).

Pionne.setEnabled(false); // plus aucun event envoyé

Ajoute un breadcrumb manuel. Voir Breadcrumbs.

Pionne.addBreadcrumb({
category: 'navigation',
message: 'Navigated to Checkout',
data: { from: 'Cart' },
});

Wrappe une fonction (sync ou async) avec un try/catch. L’erreur est capturée puis re-throw.

const safeSubmit = Pionne.wrap(async (form) => {
await api.submit(form);
}, { feature: 'checkout' });

Définit la ref racine pour la capture d’écran.

const rootRef = useRef(null);
useEffect(() => Pionne.setRootRef(rootRef), []);
return <View ref={rootRef} style={{ flex: 1 }}>...</View>;

Composant React Error Boundary. Voir Error Boundary.

Forme du payload envoyé à /api/ingest (résumé) :

type PionneEvent = {
exception_type: string;
message: string;
stack: string | null;
level: 'fatal' | 'error' | 'warning' | 'info';
release?: string;
environment?: string;
tags?: Record<string, unknown>;
user?: { id?: string };
contexts?: { device?: object; app?: object; os?: object };
mechanism?: { type: string; handled: boolean };
breadcrumbs?: Array<{ category: string; message: string; ts: number; data?: object }>;
screenshot?: string; // base64 JPG
extra?: Record<string, unknown>;
};