Exiba páginas da web hospedadas em seu ServiceNow instância

  • Versão de lançamento: Zurich
  • Atualizado 31 de jul. de 2025
  • 3 min. de leitura
  • Você pode exibir páginas da web hospedadas em seu ServiceNow Em seu aplicativo iOS nativo.

    . Mobile SDK fornece manipulação contínua da autenticação necessária e do gerenciamento de sessão, enquanto o fornece NowWebService A API fornece a funcionalidade necessária para lidar com páginas que residem no ServiceNow instância. Essas páginas da web têm todas as interações dinâmicas possíveis no ServiceNow plataforma.

    Quando a webview é solicitada a carregar uma página da Web hospedada em um ServiceNow Cria uma solicitação HTTP com o cabeçalho do portador apropriado que contém o token de acesso OAuth fornecido pelo NowSDK. Quando a instância recebe esta solicitação, ela inicia uma nova sessão do usuário e retorna cookies relacionados a essa sessão. À medida que o usuário interage com as páginas da Web na webview, a instância usa os cookies para validar se a sessão ainda é válida. Neste ponto, o cabeçalho do portador não é mais relevante, somente os cookies são usados para validação de sessão. A sessão da Web expira se o usuário parar de interagir com o site por mais tempo do que o período de tempo limite. Se a sessão expirar, se o usuário tentar interagir com a página da Web, ele será redirecionado automaticamente para a página de login. NowWebViewController detecta o redirecionamento e tenta iniciar uma nova sessão da web solicitando um token de acesso atualizado do NowSDK e usando o token para criar uma solicitação HTTP (com cabeçalho do portador) para a última página carregada conhecida.

    Para usar esses recursos, você deve primeiro criar uma instância do NowWebService . Para fazer isso, você deve chamar MakeWebService() E forneça o URL para seu ServiceNow e um já inicializado NowSDK . Além disso, você deve ter importado NowWeb em sua aplicação. Você deve ter uma referência ao NowWebService enquanto você estiver usando NowWeb serviço.

    A seguir, é mostrado um exemplo de como criar um objeto NowWebService usando async/await:

    do {
        let service = try await NowWeb.makeWebService(instanceUrl: instanceUrl)
        self.webService = service
    } catch {
        debugPrint("Web Service creation failed with error: \(error.localizedDescription)") 
    }

    A seguir, é mostrado um exemplo de como criar um objeto NowWebService usando um manipulador de conclusão:

    import Combine
    import NowWeb
    import UIKit
    ...
    public func makeWebService(instanceUrl: URL, 
      completion: @escaping ((Result<NowWeb.NowWebService, NowSDK.NowServiceError>) -> Void)) 

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

    Pré-carregar páginas com recursos armazenáveis em cache em segundo plano para melhorar o inicial NowWeb tempos de carregamento. O exemplo a seguir mostra como usar o. WebService.preloadWebCache() função para pré-carregar páginas especificadas.

    private func preloadURLs(urls: [URL]) {
      guard let webService = webService else {
        debugPrint("Web service not initialized")
        return
      }
      do {
           try webService.preloadWebCache(urls: urls) {
             debugPrint("URLs did complete preloading")
           }
                
      } catch {
          debugPrint(error.localizedDescription)
      }
    }

    Crie exibições para exibir conteúdo da Web

    Depois de ter instanciado uma instância do NowWebService, você pode usá-lo para criar exibições para exibir páginas da web hospedadas no ServiceNow instância.

    O exemplo a seguir mostra como criar um NowWebViewController exibir:

    let result = webService.makeWebViewController(for: url, 
      delegate: self, theme: MyWebTheme(nowUITheme: MyUITheme()))
    switch result { 
    case .success(let viewController): 
      return viewController 
    case .failure(let error): 
      debugPrint("Web view creation failed with error: \(error.localizedDescription)") 
    }

    Neste exemplo, urlÉ o URL da página inicial a ser carregada na exibição. Este URL deve apontar para uma página hospedada no especificado ServiceNow instância. URLs relativos também funcionam e são relativos ao ServiceNow Instância direcionada pelo NowWebService.

    Uma vez criado, você pode enviar o NowWebViewController para uma pilha de navegação existente. A página inicial não é carregada até que você chame LoadPage() método.

    A interface do usuário da web

    Você pode personalizar as cores da IU da Web passando um objeto de tema no MakeWebViewController() chamada. Para obter uma lista de todos os elementos que você pode personalizar, consulte Protocolo NowWebColoring - iOS. Por padrão, a IU da Web usa o tema NowUIColor para todos os elementos de IU do NowSDK. Consulte Protocolo NowWebThemeable - iOS Para obter snippets de código de amostra sobre como aplicar um tema à IU da Web.