Verwenden Sie NowUIColoring, um NowWebTheme und NowChatTheme zu gestalten
Die NowUIFarbe Die Schnittstelle enthält alle Farben, die von allen NowSDK-Modulen verwendet werden.
Für Szenarien, in denen Sie ähnliche Farbvariablen in mehreren SDK-Modulen verwenden, können Sie implementieren NowUIFarbe Schnittstelle. Mit dieser Schnittstelle können Sie Farbwerte überschreiben und dann diese Implementierung verwenden, um die nowUIColoring-Werte innerhalb der Designklassen zu überschreiben NowWebTheme Und NowChatTheme . Wenn Farbvariablen nicht überschrieben werden, wird NowUIFarbe Die Schnittstelle verwendet die Standardfarben.
Das folgende Codebeispiel zeigt, wie Farben für eine Web-UI und eine Chat-UI überschrieben werden.
// 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
})
}
Unterstützung für dunkle Designs
Um ein dunkles Design in NowChat zu unterstützen, können Sie entweder Ihre eigene Implementierung des NowChatTheme für dunkle Designs bereitstellen und diese in verwenden NowChatService.Start() Und NowChatService.updateTheme() Funktionen. Oder Sie können eine NowChatThemeDark-Klasse verwenden, die die NowChatTheme-Schnittstelle mit standardmäßigen dunklen Designfarben implementiert. Sie können diese Klasse auch als Basis für Ihre anwenderdefinierte Implementierung mit dunklem Design verwenden.
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)