one_viewr_flutter library
Client Flutter public d'Oneviewr CRM : identify (enregistrer un
contact), track (événements), registerPushToken/unregisterPushToken
(token push FCM/APNs).
Port direct de @oneviewr/js (neero-crm/sdk-js), avec les patrons
d'architecture d'onex_client_plugin_flutter : façade statique unique
(OneViewr), résolution d'environnement (OneViewrEnv/resolveApiBase),
client REST séparé de l'état (OneViewrRestClient/ApiException),
stockage local avec repli mémoire (KeyValueStore).
Surface publique normale : OneViewr — boot(), identify(),
track(), registerPushToken(), unregisterPushToken(),
checkInAppMessages(), ackInAppMessage(), setScreen(),
answerInAppSurvey(), recordDeepLink(), deferredDeepLink(),
resolveDeepLink(), reset(), plus IdentifyResult, OneViewrPlatform,
PendingInAppMessage et DeepLink. Un
intégrateur qui ne veut qu'identifier des contacts, envoyer des
événements et afficher les messages in-app n'a besoin de rien d'autre.
Tout le reste est exporté en second rideau, pour l'hôte qui veut son
propre stockage (KeyValueStore), sa propre source d'attribution
d'installation (InstallAttribution, pour relayer un outil de mesure
mobile), assembler son propre client REST, ou
pour l'outillage/les tests — même philosophie que le fichier équivalent
côté onex_client_plugin_flutter. showInAppMessage/InAppMessageWebView
(src/ui/) en font partie : un hôte qui voudrait composer son propre
écran autour du rendu WebView (plutôt que le Dialog/showModalBottomSheet
posé par checkInAppMessages) peut les appeler directement.
Ce commentaire de bibliothèque ne fait qu'exporter (pas d'import), donc
les symboles ci-dessus sont référencés en code inline (`), pas en
liens dartdoc ([...]) — un lien exige que le symbole soit en réalité
importé dans CE fichier, ce qu'un simple export ne fait pas.
Classes
- AttributionTouch
-
Une visite et ses signaux marketing — la forme exacte d'
AttributionTouchcôté backend (com.oneviewr.crm.acquisition.dto) et de ce qu'envoie le SDK JS (neero-crm/sdk-js/src/attribution.js) : paramètres UTM, identifiants de clic publicitaires, domaine référent, chemin d'arrivée, date. - DeepLink
-
Un lien d'acquisition retrouvé (ou pas) — rendu par
OneViewr.deferredDeepLink(après une installation) etOneViewr.resolveDeepLink(application déjà installée). - DeferredLinkFound
- L'utilisateur est arrivé par un lien d'acquisition.
- DeferredLinkLookup
- Issue d'une recherche de lien différé — voir DeferredLinkSource.lookup.
- DeferredLinkNone
- Réponse définitive « pas de lien » : installation organique, plateforme sans mécanisme, presse-papiers vide ou refusé. On ne redemandera pas.
- DeferredLinkRetryLater
- Échec passager : on redemandera au prochain démarrage.
- DeferredLinkSignal
- Ce que la recherche d'un lien différé a trouvé : le lien d'acquisition sur lequel l'utilisateur a cliqué avant d'installer l'application.
- DeferredLinkSource
-
Source du lien d'acquisition sur lequel l'utilisateur a cliqué avant
d'installer l'application, interrogée par
OneViewr.boottant que le premier contact de l'appareil n'est pas fixé. - DeviceDeferredLink
- Lien différé lu sur l'appareil :
- DeviceInstallAttribution
- Origine de l'installation lue sur l'appareil :
- FlutterSecureLocationStorage
-
flutter_secure_storageadapter for iOS Keychain and Android Keystore. - IdentifyResult
-
Résultat d'un
identify()réussi — reprendIdentifyResponsedu SDK JS (neero-crm/sdk-js/index.d.ts). - IdentityStore
-
Mémorise la dernière identité posée par
identify(), pour quetrack()/registerPushToken()n'aient pas à répéter les identifiants à chaque appel — même contrat queidentity-store.jscôté SDK JS (« identify once per session/login, track freely afterward », comme Segment). - InAppMessageWebView
- Rendu passif d'un message in-app déjà compilé en HTML auto-porté.
- InMemoryKeyValueStore
- Stockage en mémoire — pour les tests, et pour le repli si le disque refuse (voir SharedPreferencesKeyValueStore).
- InstallAttribution
-
Source de l'origine d'une installation, interrogée par
OneViewr.boottant que le premier contact de l'appareil n'est pas fixé. - InstallFound
- L'installation vient d'une campagne ou d'une fiche de magasin identifiable : touch devient candidat au premier contact.
- InstallLookup
- Issue d'une recherche de l'origine de l'installation — voir InstallAttribution.lookup.
- InstallRetryLater
- Échec passager (service Google Play indisponible, réseau coupé, réponse Apple pas encore prête) : on redemandera au prochain démarrage.
- InstallUnknown
- Réponse définitive « rien à dire » : plateforme sans mécanisme, installation sans publicité, mécanisme non pris en charge sur cet appareil. On ne redemandera pas.
- KeyValueStore
- Stockage local clé → texte.
- LocationSample
- A position supplied by the host application.
- LocationSecureStorage
- Secure key storage used by the encrypted location queue.
- LocationSendResult
- Outcome of a location submission. It intentionally contains no position.
- OneViewr
-
Client Flutter public d'Oneviewr CRM — port direct de
@oneviewr/js(neero-crm/sdk-js), avec les patrons d'architecture d'onex_client_plugin_flutter: façade statique unique, résolution d'environnement séparée (core/environments.dart), client REST qui ne connaît ni Flutter ni l'état du paquet (transport/rest_client.dart), stockage local avec repli mémoire en cas d'erreur disque (core/key_value_store.dart). - OneViewrAttributionDebugState
-
Ce que le paquet a retenu de l'origine de l'installation sur cet appareil
— rendu par
OneViewr.debugAttributionStateetOneViewr.debugSimulateInstall. Outil de développement : à afficher ou à journaliser pendant les tests, jamais à exploiter en production. - OneViewrIdentity
-
Identité d'un contact, telle que mémorisée après un
identify()réussi. - OneViewrRestClient
-
Client des routes REST publiques d'Oneviewr
(
com.oneviewr.crm.publicapi.PublicIngestController, base/api/v1/public) :POST /identify,POST /events,PUT /push-tokens,DELETE /push-tokens/{token},POST /deep-link/resolve. - PendingInAppMessage
-
Message in-app en attente, tel que renvoyé par
POST /in-app-messages/pending— voirPublicInAppMessageResponsecôté backend (com.oneviewr.crm.publicapi.dto). -
Stockage persistant, au-dessus de
shared_preferences.
Enums
- DeepLinkDestinationType
- Où mène un lien d'acquisition — le « type de destination » choisi par le marchand dans Oneviewr.
- DeepLinkStatus
-
Issue de la résolution d'un lien d'acquisition par le serveur
(
POST /api/v1/public/deep-link/resolve). Toujours une réponse, jamais une erreur : c'est le statut qui dit si le lien a pu être retrouvé. - OneViewrEnv
- Instance backend Oneviewr visée.
- OneViewrPlatform
- Plateforme d'un token push, transmise à OneViewr.registerPushToken.
Constants
- defaultOneViewrEnv → const OneViewrEnv
- Environnement retenu quand l'intégrateur n'en nomme aucun.
- publicKeyHeaderName → const String
- Nom de l'en-tête d'authentification du SDK public Oneviewr.
Functions
-
buildPublicHeaders(
String publicKey, {bool hasBody = true}) → Map< String, String> -
Construit les en-têtes d'une requête vers
/api/v1/public/**. -
resolveApiBase(
{OneViewrEnv? env, String? apiBase}) → String -
Origine effective, résolue avec la même précédence que
resolveApiBase()côté SDK JS (environments.js) :apiBaseexplicite >envnommé > défaut du paquet (prod). -
showInAppMessage(
BuildContext context, {required String html, required String displayType, required bool dismissible, String? ctaUrl, void onPresented(VoidCallback dismiss)?, ValueChanged< List< ? onAnswer}) → Future<int> >String?> -
Affiche un message in-app déjà compilé en HTML, dans l'un des quatre
formats v1 (
MODAL,BOTTOM_SHEET,BANNER,FULLSCREEN— Phase 5 du planIN_APP).
Exceptions / Errors
- ApiException
- Échec d'un appel REST porté jusqu'à l'appelant.