Verwenden Sie NowUIColoring, um NowWebTheme und NowChatTheme zu entwerfen
Die Jetzt Farbe 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 Jetzt Farbe Schnittstelle. Mit dieser Schnittstelle können Sie Farbwerte überschreiben und dann diese Implementierung verwenden, um die nowUIColoring-Werte innerhalb der Designklassen zu überschreiben Now WebTheme Und Now ChatTheme . Wenn Farbvariablen nicht überschrieben werden, wird Jetzt Farbe 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: NowUIAdaptiveColor
get() = NowUIAdaptiveColor(lightColor = Color.BLACK, darkColor = Color.WHITE)
override val textPrimary: NowUIAdaptiveColor
get() = NowUIAdaptiveColor(lightColor = Color.BLACK, darkColor = Color.WHITE)
//override the rest of color variables
}
// Override the nowUIColoring for NowWeb value using the NowUIColoring implementation
lifecycleScope.launch {
sdkManager.getNowWebService()?.launch(this@MainActivity, 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(this@MainActivity, object : NowChatTheme {
override val nowUIColoring: NowUIColoring
get() = nowUIColoringImpl
})
}
Hinweis zur Verarbeitung dunkler Designs
Innerhalb von Jetzt AdaptiveFarbe Klasse: Wenn Sie Farbvariablen in den Designklassen überschreiben, können Sie zwei Int übergeben ColorWerte, einer für helles Design und ein anderer für dunkles Design. Der zweite Parameter, darkColor, Ist optional. Wenn Sie keinen Farbwert übergeben, werden die Standardfarbwerte verwendet. Das verwendete Standarddesign, hell oder dunkel, basiert auf der Telefoneinstellung des Anwenders.
lifecycleScope.launch {
sdkManager.getNowWebService()?.launch(this@MainActivity, URL("https://instance-name.service-now.com"), object : NowWebTheme {
override val brand: NowUIAdaptiveColor
//Setting lightColor only. For dark theme, default color are used.
get() = NowUIAdaptiveColor(lightColor = Color.BLACK)
override val primary: NowUIAdaptiveColor
//Setting both lightColor and darkColor
get() = NowUIAdaptiveColor(lightColor = Color.BLACK, darkColor = Color.WHITE)
// Override the rest of color variables
})
}