Verwenden Sie NowUIColoring, um NowWebTheme und NowChatTheme zu entwerfen

  • Freigeben Version: Yokohama
  • Aktualisiert 30. Januar 2025
  • 1 Minute Lesedauer
  • 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
      })
    }