Utiliser NowUIColoring pour le thème NowWebTheme et NowChatTheme

  • Rversion finale: Zurich
  • Mis à jour 31 juil. 2025
  • 1 minute de lecture
  • L’interface NowUIColoring contient toutes les couleurs utilisées par tous les modules NowSDK.

    Pour les scénarios où vous utilisez des variables de couleur similaires dans plusieurs modules SDK, vous pouvez implémenter l’interface NowUIColoring . À l’aide de cette interface, vous pouvez remplacer les valeurs de couleur, puis utiliser cette implémentation pour remplacer les valeurs nowUIColoring dans les classes de thème NowWebTheme et NowChatTheme. Si les variables de couleur ne sont pas remplacées, l’interface NowUIColoring utilise les couleurs par défaut.

    L’exemple de code suivant montre comment remplacer les couleurs pour une interface utilisateur web et une interface utilisateur de messagerie instantanée.

    // Implement the NowUIColoring and override desired color variables
    val nowUIColoringImpl = object : NowUIColoring {
        override val brand: Int
            get() = Color.BLUE
    
        override val textPrimary: Int
            get() = Color.WHITE
    
        //override the rest of color variables
    
    }
    
    // Override the nowUIColoring for NowWeb value using the NowUIColoring implementation
    lifecycleScope.launch {
        sdkManager.getNowWebService()?.launch(activity, URL("https://instance-name.service-now.com"), object : NowWebTheme {
            override val nowUIColoring: NowUIColoring
                get() = nowUIColoringImpl
        })
    }
    
    //Override the nowUIColoring for NowChat value using the NowUIColoring implementation
    lifecycleScope.launch {
        sdkManager.getNowChatService()?.start(activity, object : NowChatTheme {
            override val nowUIColoring: NowUIColoring
                get() = nowUIColoringImpl
        })
    }

    Prise en charge du thème foncé

    Pour prendre en charge un thème sombre dans Now Chat, vous pouvez soit fournir votre propre implémentation de thème sombre de NowChatTheme et l’utiliser dans les fonctions NowChatService.start() et NowChatService.updateTheme(). Vous pouvez également utiliser une classe NowChatThemeDark qui implémente l’interface NowChatTheme avec des couleurs de thème foncé par défaut. Vous pouvez également utiliser cette classe comme base pour votre implémentation personnalisée de thème sombre.

    val chatService = serviceManager.getNowChatService()
    
    val chatThemeLight = object : NowChatTheme {
        override val backgroundPrimary: Int
            get() = Color.WHITE
    
        override val textPrimary: Int
            get() = Color.BLACK
    
        // Override remaining theme colors
    }
    
    //create dark theme using the NowChatThemeDark class
    val chatThemeDark = object : NowChatThemeDark(){
        override val backgroundPrimary: Int
            get() = Color.BLACK
    
        override val textPrimary: Int
            get() = Color.WHITE
    
        // Override remaining theme colors
    }
    
    //start NowChat with light theme
    chatService?.start(activity, chatThemeLight)
    
    
    //update NowChat theme to dark theme
    chatService?.updateTheme(chatThemeDark)