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


---

# Inicializar o NowSDK em sua aplicação

# Inicializar o NowSDK em sua aplicação {#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

Para acessar a funcionalidade fornecida pelo NowSDK, você deve primeiro inicializar o NowSDK em sua aplicação.
A inicialização Mobile SDK é assíncrona. É uma prática recomendada iniciar o processo de inicialização o mais cedo possível, como na função `application(application:didFinishLaunchedWithOptions:)` do delegado da aplicação. A inicialização só precisa ocorrer uma vez por inicialização da aplicação. Não há necessidade de reinicializar quando em primeiro plano ou quando uma nova cenário é detectado.

O diagrama a seguir mostra a sequência de inicialização do NowSDK e dos serviços do recurso:  

<br />

Para inicializar o ServiceNow Mobile SDK em sua aplicação iOS, você precisará de um provedor de autorização em conformidade com `NowSDKAuthorizationProviding`, que usa as informações do provedor JWT e um delegado em conformidade com `DevicePermissionDelegate`.

A seguir está um exemplo de uma estrutura de uma inicialização do SDK. Para obter exemplos de código adicionais, consulte a aplicação de exemplo ServiceNow Mobile SDK.

    // 

    //  JWTProvider.swift 

    import Foundation 
    import NowSDK 

    class JWTProvider: NowSDKAuthorizationProviding { 
      let token: String 

      init(token: String) { 
        self.token = token 
      } 

      func requestAuthorization(for instanceUrl: URL, completion: @escaping ([AuthorizationToken]?) -> Void) { 
        completion([AuthorizationToken(type: .jwt, token: token)]) 
      } 
    } 

    //
    //  PermissionProvider.swift 

    import Foundation
    import NowSDK 

    class PermissionProvider: DevicePermissionDelegate { 
      var isUserPermissionAllowed: Bool { Bool.random() } 

      func canRequestPermission(_ permission: DevicePermission) -> Bool { 
        guard isUserPermissionAllowed else { false } 
        return true 
      } 
    }

    //  
    //  AppDelegate.swift  

    import Foundation  
    import NowSDK  

    @main 
    class AppDelegate: UIResponder, UIApplicationDelegate { 
      func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { 

        let jwtProvider = JWTProvider(token: "a_valid_token") 
        let permissionDelegate = PermissionProvider()  
        let logLevel: NowLogLevel = .debug 

        let config = NowSDKConfiguration(authorizationProvider: jwtProvider, permissionDelegate: permissionProvider, logLevel: logLevel)  

        do { 
          try NowSDK.configure(with: config) 
        } catch { 
          // Handle 'error' 
        }

        return true 

    }

## Usuários convidados {#mobsdk-ios-init-nowsdk-in-app__section_cxw_xhx_kxb}

Se o usuário atual não estiver autenticado, é possível que ele acesse a funcionalidade do SDK como convidado. Para indicar que o usuário atual é um convidado, a função requestAuthorization no provedor de autorização deve ser concluída com um tipo convidado de AuthorizationToken, conforme mostrado abaixo. O valor do token, neste caso, não é importante, desde que o AuthorizationTokenType esteja definido como `.guest`. Para obter informações adicionais sobre usuários convidados, consulte [Configurar acesso de usuário convidado](https://servicenow-prod.fluidtopics.net/wWLuAsNgXGPm2BLRQ_ixFA "Para permitir que os serviços do SDK sejam acessíveis por usuários não autenticados, você deve configurar o Mobile SDK em sua instância ServiceNow para permitir o acesso de usuários convidados. Um usuário convidado pode exibir páginas da Web públicas hospedadas em uma instância usando o NowWeb, ter uma conversa como convidado usando o NowChat, acessar dados públicos na instância usando NowTableService e NowGraphQLServicee acessar serviços de API personalizados configurados para usuários não autenticados usando NowAPIService.").

    //  GuestTokenProvider.swift 
    import Foundation 
    import NowSDK 
    class GuestTokenProvider: NowSDKAuthorizationProviding { 
        func requestAuthorization(for instanceUrl: URL,  
            completion: @escaping ([AuthorizationToken]?) -> Void) { 
            completion([AuthorizationToken(type: .guest, token: "")]) 
        } 
    } 

## Como desconectar usuários do SDK

Depois que um usuário é desconectado de uma aplicação host, você deve chamar o método `NowSDK.logout()` para limpar as ServiceNow sessões e tokens desse usuário do SDK. Por exemplo:  

    func onLogout() {
      NowSDK.logout()
    } 


