Aller au contenu principal

Comment migrer depuis la version avant 4.0.0


Guide de migration

La migration est la même, quel que soit le produit utilisé. Cependant, pour faciliter la lecture du code et des paquets, sélectionnez le produit qui correspond à vos besoins de migration.

Premier changement

La première chose à savoir en ce qui concerne la migration, c'est le changement du nom de la classe.

Avant nous avions: com.sfbx.appconsentv3.ui.AppConsentUIV3
Maintenant nous avons: com.sfbx.appconsentv3.ui.AppConsentSDK

Voici le comparatif

var appConsentUIV3: AppConsentUIV3? = null
appConsentUIV3 = AppConsentUIV3(
context = this,
appKey = appkey,
onReady = {
it.addNoticeListener(getNoticeListener())
it.addGeolocationListener(getGeolocationListener())
it.presentNotice(false)
}
)

En détail

Comme vous pouvez le voir le context a été supprimé des paramètres et le callback onReady est devenu obligatoire.

Egalement, la signature ainsi que le nom de la méthode presentNotice a été modifié pour :

  1. Retourner un Boolean qui permet de savoir si la CMP s'affiche ou non.
  2. Le nom de la méthode devient tryToDisplayNotice qui permet de savoir à la lecture de la méthode que le SDK va essayer d'afficher la CMP selon des règles fonctionnelles.

L'instance

Nous avons modifié également la façon de récupérer et d'utiliser la CMP.
Nous ne récupérons plus l'instance depuis son constructeur, mais seulement après que celui-ci est été initialisé correctement.

D'ailleurs si vous souhaitez utiliser de nouveau la CMP, vous pourrez à présent faire appel à la méthode getInstance qui vous renverra l'objet AppConsent si celle-ci à dors et déjà été initialisé (isSdkInitialized est également public)

Les listeners

Anciennement nous donnions la possibilité d'ajouter des listener en callback, cette fois-ci vous définissez un unique listener dédié à l'affichage de la notice qu'y lui est associé.

Le résultat des callbacks restent inchangé (soit la réponse est en succès, soit en erreur avec un throwable en paramètre)

...
it.addNoticeListener(object : AppConsentNoticeListener {
override fun onConsentGiven() {
Log.i(TAG, "Nouveau consentement donné")
}

override fun onError(error: AppConsentError) {
Log.e(TAG, error.cause?.message ?: "Erreur inconnue", error.cause)
}
})

Nouveauté lié à la configuration

Comme pour la version CLASSIC de notre SDK (déprécié à ce jour due aux exigeances de TCF2.2) nous mettons à votre disposition un nouveau paramètre qui vous permet de choisir, si vous souhaitez afficher la CMP en plein écran ou en mode popup.

Ce paramètre a été ajouté et un nouveau composant ACConfiguration a été créé pour faciliter la mise à niveau du CMP avec un minimum de Breaking Change.

/**
* The main method, which allows you to initialize AppConsent with a default configuration or a
* custom configuration [ACConfiguration] like theme [AppConsentTheme], force the application of GRPD whatever
* the region for example or display CMP in full screen.
* By default, you will only need the [appKey] provided by the SFBX platform AND the callback [onReady].
*
* The [onReady] callback retrieves the AppConsent object once it is ready for use.
* It will enable you to use the CMP (consent management platform).
* At this point, you can either use [com.sfbx.appconsent.AppConsent] to display the CMP, or later
* use the [com.sfbx.appconsentv3.ui.AppConsentSDK.getInstance] method to retrieve the AppConsent object.
*
* @param appKey The appKey provided by SFBX when you created the notice on the web platform
* @param configuration Allows you to specify certain options related to CMP display.
* For example, full-screen display, force CMP display or
* make your own visual modifications, such as logos or your own theme.
* This is an optional field.
* @param onReady Callback that will be triggered once the communication is established
* with your account and it is ready to retrieve your configuration
*/
fun initialize(
appKey: String,
configuration: ACConfiguration,
onReady: (appConsent: com.sfbx.appconsentv3.AppConsent) -> Unit
)