Si vous intégrez Privacy Controls and Cookie Solution via une iframe, vous pouvez appeler toutes les méthodes de _iub.cs.api
via postMessage
. Voici quelques exemples qui illustrent la façon de réaliser ces appels.
L’API doit recevoir un appel postMessage
au format JSON suivant :
{
__iubCsCall: {
command: <api-function-name>,
parameters: [...],
callId: <a-string-or-integer>
}
}
dans lequel :
command
(chaîne de caractères) est le nom de la fonction de l’API que vous souhaitez appeler,parameters
(tableau) est la liste de paramètres que vous envoyez à la fonction de l’API, etcallId
(chaîne de caractères ou nombre entier) est l’identifiant utilisé pour vérifier à quel appel correspond la sortie de l’API.En imaginant que l’iframe cible est hébergée sur https://example.com
, nous pouvons envoyer l’appel suivant à l’API :
ifr.postMessage(
JSON.stringify({
__iubCsCall: {
command: 'isConsentGiven',
parameters: [],
callId: 1
}
}),
'https://example.com'
);
Nous appellerons ainsi la fonction isConsentGiven()
de l’API Privacy Controls and Cookie Solution sans lui affecter de paramètres. La sortie de l’API sera retournée via postMessage
sous la forme d’une chaîne de caractères JSON.
Pour permettre à l’événement message
de capturer cette sortie, vous aurez besoin d’un écouteur. En fonction de l’état actuel de Privacy Controls and Cookie Solution, cet écouteur pourra ressembler à l’exemple suivant :
{
"__iubCsReturn": {
"returnValue": false,
"success": true,
"callId": 1
}
}
Voici comment ajouter des paramètres à votre appel postMessage
:
ifr.postMessage(
JSON.stringify({
__iubCsCall: {
command: 'storeConsent',
parameters: [{
consent: false
}],
callId: 2
}
}),
'http://localhost:3012'
);
Cet appel à la fonction storeConsent()
affectera à consent
la valeur false
et déposera un cookie de consentement.
Rafraîchissez la page pour constater les effets de cet appel. Vous pourrez ensuite vérifier que consent a pour valeur false
en évaluant _iub.cs.consent.consent
dans la console (la sortie devrait être false
).
La sortie JSON de postMessage
devrait ressembler à l’exemple suivant :
{
"__iubCsReturn": {
"success": true,
"callId": 2
}
}
Voici la sortie d’un appel postMessage
mal formé (p.ex. une fonction de l’API qui n’existe pas) :
ifr.postMessage(
JSON.stringify({
__iubCsCall: {
command: 'Consent',
parameters: [{
consent: false
}],
callId: 1
}
}),
'http://localhost:3012'
);
Étant donné qu’aucune fonction de l’API de Privacy Controls and Cookie Solution ne s’appelle Consent
, l’erreur suivante se déclenchera :
{
"__iubCsReturn": {
"returnValue": null,
"success": false,
"callId": 1
}
}