Verwenden Sie NowUIColoring, um NowWebTheme und NowChatTheme zu gestalten

  • Freigeben Version: Xanadu
  • Aktualisiert 1. August 2024
  • 1 Minute Lesedauer
  • Die NowUIColoring- 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 die Schnittstelle NowUIColoring implementieren. Mit dieser Schnittstelle können Sie Farbwerte überschreiben und dann mit dieser Implementierung die nowUIColoring-Werte in den Designklassen NowWebTheme und NowChatTheme überschreiben. Wenn Farbvariablen nicht überschrieben werden, verwendet die NowUIColoring- Schnittstelle 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 Behandlung von dunklen Designs

    In der Klasse „NowUIAdaptiveColor“ können Sie beim Überschreiben von Farbvariablen in Designklassen zwei Int-Werte Color übergeben, einen für ein helles Design und einen für ein dunkles Design. Der zweite Parameter, darkColor, ist optional. Wenn Sie keinen Farbwert übergeben, werden die Standardfarbwerte verwendet. Das verwendete Standarddesign, hell oder dunkel, hängt von den Telefoneinstellungen des Benutzers ab.

    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
      })
    }