---
sourceDocument: Referência de API do Xanadu
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/pt-BR/xanadu/api-reference

 Release :

    - xanadu

ft:locale :

    - pt-BR

ft:publication_title :

    - Referência de API do Xanadu

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# Exibir páginas da Web hospedadas em sua instância ServiceNow

# Exibir páginas da Web hospedadas em sua instância ServiceNow {#ariaid-title1}

* Versão de lançamento: Xanadu
* 
* Atualizado 1 de ago. de 2024
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 2 min. de leitura

Você pode exibir páginas da Web hospedadas em sua instância ServiceNow em sua aplicação nativa Android.
O Mobile SDK fornece manipulação contínua da autenticação necessária e gestão de sessões, enquanto a API [NowWebSDK](https://servicenow-prod.fluidtopics.net/T06u4fFHfwpKoDGVOw6eZg#NowWebSDKAndroidAPI "A classe NowWebSDK fornece uma única função que permite carregar páginas da Web hospedadas em sua instância ServiceNow em uma exibição nativa da Web e Cabrillo. Ela lida automaticamente com a autenticação de usuário e o gerenciamento de sessões em vez de forçar os usuários a fazerem login na instância por meio de uma página da Web de login.") fornece a funcionalidade necessária para lidar com páginas que residem em sua instância ServiceNow. Essas páginas da Web têm todas as interações dinâmicas possíveis na plataforma ServiceNow.

Para usar esses recursos, você deve primeiro criar uma instância do NowWebService. Para fazer isso, você deve chamar o método [makeWebService()](https://servicenow-prod.fluidtopics.net/T06u4fFHfwpKoDGVOw6eZg#NWebSDK-makeWebService_S_S_S_S "Cria um serviço NowWeb.") e fornecer o URL para sua instância ServiceNow e um `NowSDK`já inicializado. Além disso, você deve ter importado o `NowWeb` na sua aplicação. Você deve manter uma referência ao NowWebService pelo tempo que estiver usando o serviço `NowWeb`.

Veja a seguir um exemplo de como criar um objeto NowWebService:  

    /**
     * Helper class used to handle different Now service instances.
     */
    @Singleton
    class SdkManager @Inject constructor() {

        private var nowWebService: NowWebService? = null

        /**
         * Create the NowWebService once in the lifetime of the application inside the Application class or
         * another manager class that will be injected into other classes via dagger/hilt.
         * NowWebService should be created after initializing the NowSDK
         */
        suspend fun getNowWebService(): NowWebService? {
            if (nowWebService != null) return nowWebService

            return NowWebSDK.makeWebService(URL("https://instance-name.service-now.com")).getOrThrow()
                .also { this.nowWebService = it }
        }
    }

## Pré-carregar páginas para melhorar o tempo de carregamento do NowWeb

Você pode pré-carregar páginas com recursos armazenáveis em cache em segundo plano para melhorar os tempos de carregamento iniciais do NowWeb. O exemplo a seguir mostra como usar a função webService.preloadWebCache() para pré-carregar a página do `MESP`. Este método usa uma lista de URIs para pré-buscar mais páginas.

    suspend fun preloadNowWeb() {
      val webService = sdkmanager.getNowWebService()
      webService.preloadWebCache(listOf(URI("mesp")))
    }

## Criar exibições para exibir conteúdo da web

Depois de instanciar uma instância de NowWebService, você pode usá-la para iniciar uma atividade para exibir páginas da Web hospedadas em sua instância ServiceNow.

O exemplo a seguir mostra como iniciar uma atividade NowWeb:  

    //Activity that will start the NowWeb
    class MainActivity : AppCompatActivity() {

      @Inject
      lateinit var sdkManager: SdkManager

      override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        // Start NowWeb
        lifecycleScope.launch {
          sdkManager.getNowWebService()?.launch(this@MainActivity, URL("https://instance-name.service-now.com"), object : NowWebTheme{})
        }
      }
    }

Neste exemplo, url é o URL da página inicial a ser carregada na exibição. Este URL deve apontar para uma página que está hospedada na instância ServiceNow especificada.

## Suporte ao tema de cores para elementos de IU NowWeb

Você pode especificar um tema de cores personalizado que se aplica a todos os elementos de IU em uma exibição ao chamar o método NowWebService launch(). Para criar este tema de cores personalizado, crie um tipo que implemente a interface NowWebTheme e passe-o no parâmetro de tema da chamada NowWebService.launch().  

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

Para obter informações adicionais sobre como aplicar temas de cores em uma exibição da web, consulte [Use NowUIColoring para o tema NowWebTheme e NowChatTheme](https://servicenow-prod.fluidtopics.net/9CvwW0WKNVQfVvfR8tEMWg "A interface NowUIColoring contém todas as cores usadas por todos os módulos do NowSDK.").

