Android & AndroidTV: Implementación básica
Implementación básica en Android
Para implementar la versión Android el primer paso es importar la librería sibbo-cmp-android-library-inapp.aar que le proporcionamos, en el proyecto de Android Studio:
- La copiamos a /app/libs/
- En el gradle del proyecto debemos añadir lo siguiente (si no existe):
- buildscript {
- ext.kotlin_version = '1.8.10'
-
repositories {
-
google()
-
jcenter()
-
}
-
dependencies {
-
....
-
....
- classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version
-
}
-
}
El siguiente paso es añadir al inicio de gradle app (si no existe):
apply plugin: 'com.android.application'
-
apply plugin: 'kotlin-android'
- implementation 'androidx.appcompat:appcompat:1.6.1'
- implementation 'androidx.preference:preference-ktx:1.2.0'
- implementation 'androidx.core:core-ktx:1.10.1'
- implementation 'com.google.code.gson:gson:2.9.0'
- implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.1'
- implementation ‘androidx.webkit:webkit:1.7.0'
- implementation files(‘libs/libs/sibbo-cmp-android-library-inapp.aar’)
En el directorio assets de la aplicación se debe de crear una carpeta llamada web y dentro de esta otra llamada src -> assets/web/src. En esta ruta debe crear un fichero llamado index.html
con el siguiente código:
- <html>
- <head>
- <meta charset="UTF-8" />
- <meta name="viewport"
- content="width=device-width, user-scalable=device-height, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0" />
- <meta http-equiv="X-UA-Compatible" content="ie=edge" />
- <title>Sibbo</title>
- <script src="https://cmp.sibbo.net/v2.2/sibbo-cmp-core.js" charset="utf-8"></script>
- <script src="{{URL}}" charset="utf-8"></script>
- <script src="js/main.js"></script>
- </head>
- <body>
- </body>
- </html>
Hay que sustituir la URL {{URL}} por la URL que le proporcionaremos y que lleva la configuración del CMP.
Es obligatorio añadir a la app que alberga el CMP, un enlace o botón con el texto Cookies o Configuración de cookies, que dispara el método
- CMP.CMP.tryShowConsentTool(true);
Este método reflotará el CMP.
Existe un listener CMP.setOnTryOpenListener, ver apartado
Métodos en Android / AndroidTV, que retorna
true si se ha mostrado la interfaz de consentimiento y
false si no se ha mostrado.
Para hacer uso de la librería en el Activity principal de la App hay que importarla e inicializar el componente del CMP, en el onCreate como se indica:
- import com.sibboventures.sibbocmp2.ConsentHelper
- // El primer parámetro es el contexto de la actividad
- // El segundo parámetro showOnInit indica si se desea intentar abrir el CMP al inicializarlo, su valor por default es true
- val CMP: ConsentHelper = ConsentHelper(YourContext, showOnInit: true)
- // Listeners opcionales
- CMP.setOnTryOpenListener { success ->
- // Your code
- }
- CMP.setOnCloseListener {
- // Your code
- }
- // Se puede llamar al método para forzar la apertura del CMP
- CMP.tryShowConsentTool(true)
Ejemplo en Java
- import com.sibboventures.sibbocmp2.ConsentHelper
- // El primer parámetro es el contexto de la actividad
- // El segundo parámetro showOnInit indica si se desea intentar abrir el CMP al inicializarlo, su valor por default es true
- private ConsentHelper CMP = new ConsentHelper(YourContext, true);
- // Listeners opcionales
- CMP.setOnTryOpenListener( success -> {
- // Your code
- });
- CMP.setOnCloseListener ( ( ) -> {
- // Your code
- });
- // Se puede llamar al método tryShowConsentTool para forzar la apertura del CMP
- CMP.tryShowConsentTool(true);
En el código anterior se crea el objeto de la clase ConsentHelper y se le pasa como argumento el contexto de la Aplicación y opcionalmente un boolean que indica si el CMP debe intentar mostrarse al inicializarse, por defecto su valor es true.
Siempre hay que llamar a - CMP.tryShowConsentTool(false);
al inicio para que se muestre la interfaz del CMP si fuera necesario (cadena de consentimiento obsoleta, por ejemplo).
No es necesario dar permisos de escritura ni almacenamiento, pero la librería, al ser externa de su app, hay que darle permisos de proguard para que en la compilación y ofuscación no pierda las rutas de escritura ya que las preferencias se guardan en el paquete de la app principal.
En resumen, hay que añadir el root del sdk al proguard-rules:
- -keep interface com.sibboventures.** { *; }
- -keep class com.sibboventures.** { *; }
Para implementar el CMP en Android debe hacernos llegar el Package name de la app. De este modo podremos incluirla a nuestra whitelist. De lo contrario, al finalizar el proceso de implementación, recibirá un mensaje en la consola de Android Studio indicándole que la aplicación no está validada.
Implementación básica en AndroidTV
Para implementar la versión Android TV el primer paso es importar la librería sibbo-cmp-android-library-inapp.aar que le proporcionamos, en el proyecto de Android Studio:
- La copiamos a /app/libs/
- En el gradle del proyecto debemos añadir lo siguiente (si no existe):
- buildscript {
- ext.kotlin_version = '1.8.10'
- repositories {
- google()
- jcenter()
- }
- dependencies {
- ....
- ....
- classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version
- }
- }
El siguiente paso es añadir al inicio de gradle app (si no existe):
apply plugin: 'com.android.application'
- apply plugin: 'kotlin-android'
- implementation 'androidx.appcompat:appcompat:1.6.1'
- implementation 'androidx.preference:preference-ktx:1.2.0'
- implementation 'androidx.core:core-ktx:1.10.1'
- implementation 'com.google.code.gson:gson:2.9.0'
- implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.1'
- implementation ‘androidx.webkit:webkit:1.7.0'
- implementation files(‘libs/libs/sibbo-cmp-android-library-inapp.aar’)
En el directorio assets de la aplicación se debe de crear una carpeta llamada web y dentro de esta otra llamada src -> assets/web/src. En esta ruta debe crear un fichero llamado index.html
con el siguiente código:
- <html>
- <head>
- <meta charset="UTF-8" />
- <meta name="viewport"
- content="width=device-width, user-scalable=device-height, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0" />
- <meta http-equiv="X-UA-Compatible" content="ie=edge" />
- <title>Sibbo</title>
- <script src="https://cmp.sibbo.net/v2.2/sibbo-cmp-core-tv.js" charset="utf-8"></script>
- <script src="{{URL}}" charset="utf-8"></script>
- <script src="js/main.js"></script>
- </head>
- <body>
- </body>
- </html>
Hay que sustituir la URL {{URL}} por la URL que le proporcionaremos y que lleva la configuración del CMP.
Es obligatorio añadir a la app que alberga el CMP, un enlace o botón con el texto Cookies o Configuración de cookies, que dispara el método
- CMP.CMP.tryShowConsentTool(true);
Este método reflotará el CMP.
Existe un listener CMP.setOnTryOpenListener, ver apartado
Métodos en Android / AndroidTV, que retorna
true si se ha mostrado la interfaz de consentimiento y
false si no se ha mostrado.
Para hacer uso de la librería en el Activity principal de la App hay que importarla e inicializar el componente del CMP, en el onCreate como se indica:
- import com.sibboventures.sibbocmp2.ConsentHelper
- // El primer parámetro es el contexto de la actividad
- // El segundo parámetro showOnInit indica si se desea intentar abrir el CMP al inicializarlo, su valor por default es true
- val CMP: ConsentHelper = ConsentHelper(YourContext, showOnInit: true)
- // Listeners opcionales
- CMP.setOnTryOpenListener { success ->
- // Your code
- }
- CMP.setOnCloseListener {
- // Your code
- }
- // Se puede llamar al método para forzar la apertura del CMP
- CMP.tryShowConsentTool(true)
Ejemplo en Java
- import com.sibboventures.sibbocmp2.ConsentHelper
- // El primer parámetro es el contexto de la actividad
- // El segundo parámetro showOnInit indica si se desea intentar abrir el CMP al inicializarlo, su valor por default es true
- private ConsentHelper CMP = new ConsentHelper(YourContext, true);
- // Listeners opcionales
- CMP.setOnTryOpenListener( success -> {
- // Your code
- });
- CMP.setOnCloseListener ( ( ) -> {
- // Your code
- });
- // Se puede llamar al método tryShowConsentTool para forzar la apertura del CMP
- CMP.tryShowConsentTool(true);
En el código anterior se crea el objeto de la clase ConsentHelper y se le pasa como argumento el contexto de la Aplicación y opcionalmente un boolean que indica si el CMP debe intentar mostrarse al inicializarse, por defecto su valor es true.
Siempre hay que llamar a - CMP.tryShowConsentTool(false);
al inicio para que se muestre la interfaz del CMP si fuera necesario (cadena de consentimiento obsoleta, por ejemplo).
No es necesario dar permisos de escritura ni almacenamiento, pero la librería, al ser externa de su app, hay que darle permisos de proguard para que en la compilación y ofuscación no pierda las rutas de escritura ya que las preferencias se guardan en el paquete de la app principal.
En resumen, hay que añadir el root del sdk al proguard-rules:
- -keep interface com.sibboventures.** { *; }
- -keep class com.sibboventures.** { *; }

Para implementar el CMP en Android debe hacernos llegar el Package name de la app. De este modo podremos incluirla a nuestra whitelist. De lo contrario, al finalizar el proceso de implementación, recibirá un mensaje en la consola de Android Studio indicándole que la aplicación no está validada.