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.
- SDK CLEAR
- SDK TV
Premier changement
La première chose à savoir en ce qui concerne la migration, c'est le changement du nom de la classe.
- SDK CLEAR
- SDK TV
Avant nous avions: com.sfbx.appconsentv3.ui.AppConsentUIV3
Maintenant nous avons: com.sfbx.appconsentv3.ui.AppConsentSDK
Avant nous avions: com.sfbx.appconsent.tv.AppConsentTV
Maintenant nous avons: com.sfbx.appconsent.tv.AppConsentSDK
Voici le comparatif
- SDK CLEAR
- SDK TV
- Avant
- Maintenant
var appConsentUIV3: AppConsentUIV3? = null
appConsentUIV3 = AppConsentUIV3(
context = this,
appKey = appkey,
onReady = {
it.addNoticeListener(getNoticeListener())
it.addGeolocationListener(getGeolocationListener())
it.presentNotice(false)
}
)
AppConsentSDK.initialize(
appKey = appkey,
onReady = {
it.setOnPresentNoticeListener(getNoticeListenerClear())
it.setOnPresentGeolocationNoticeListener(getGeolocationNoticeListenerClear())
it.tryToDisplayNotice(false)
}
)
- Avant
- Maintenant
var appConsentTV: AppConsentTV? = null
appConsentTV = AppConsentTV(
context = this,
appKey = appkey
) {
it.addNoticeListener(object : AppConsentNoticeListener {
override fun onConsentGiven() {
Log.i("MainActivity", "Consent given")
}
override fun onError(error: AppConsentError) {
Log.e(
"MainActivity",
"Consent error:" + error.cause?.message
)
}
})
it.presentNotice(false)
}
AppConsentSDK.initialize(
appKey = appKey
) {
it.setOnPresentNoticeListener(object : OnPresentNoticeListener {
override fun presentConsentGiven() {
Log.i("MainActivity", "Consent given")
}
override fun presentConsentError(error: Throwable?) {
Log.e(
"MainActivity",
"Consent error:" + error?.cause?.message
)
}
})
it.tryToDisplayNotice(false).takeIf { !it }?.let {
Log.i("The CMP didn't displayed because of no need to do that (maybe language, no need to update, etc.)")
}
}
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 :
- Retourner un
Boolean
qui permet de savoir si la CMP s'affiche ou non. - 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)
- Avant
- Maintenant
...
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)
}
})
...
it.setOnPresentNoticeListener(object : OnPresentNoticeListener {
override fun presentConsentGiven() {
Log.i(TAG, "Nouveau consentement donné")
}
override fun presentConsentError(error: Throwable?) {
Log.e(TAG, error?.message ?: "Erreur inconnue", error)
}
})
Nouveauté lié à la configuration
- SDK CLEAR
- SDK TV
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
)
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] or force the application of GRPD whatever
* the region for example.
* 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.appconsent.tv.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, 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.appconsent.AppConsent) -> Unit
)