Inicialize o NowSDK em sua aplicação
Para acessar a funcionalidade fornecida pelo NowSDK, você deve primeiro inicializar o NowSDK em sua aplicação.
. Mobile SDK a inicialização é assíncrona. É uma prática recomendada iniciar o processo de inicialização o mais cedo possível, como nos delegados da aplicação Application(application:didFinishLaunchingWithOptions:) função. A inicialização só precisa ocorrer uma vez por inicialização da aplicação. Não há necessidade de reinicializar quando uma nova cena é detectada.
O diagrama a seguir mostra a sequência de inicialização do NowSDK e dos serviços de recursos:
Para inicializar o. ServiceNow Mobile SDK Em seu aplicativo iOS, você precisará de um provedor de autorização em conformidade com NowSDKAuthorizationProviding , Que usa suas informações do provedor JWT e um delegado em conformidade com DevicePermissionDelegate .
A seguir está um exemplo de uma estrutura de inicialização de SDK. Para obter exemplos de código adicionais, consulte ServiceNow Mobile SDK aplicação de amostra.
//
// 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
Se o usuário atual não estiver autenticado, será possível que ele acesse a funcionalidade do SDK como convidado. Para indicar que o usuário atual é um convidado, o. RequestAutorização a função no provedor de autorização deve ser concluída com um tipo de convidado de AuthorizationToken , conforme mostrado abaixo. Neste caso, o valor do token não é importante, desde que TokenType está definido como .guest . Para obter informações adicionais sobre usuários convidados, consulte Configurar o acesso de usuário convidado.
// GuestTokenProvider.swift
import Foundation
import NowSDK
class GuestTokenProvider: NowSDKAuthorizationProviding {
func requestAuthorization(for instanceUrl: URL,
completion: @escaping ([AuthorizationToken]?) -> Void) {
completion([AuthorizationToken(type: .guest, token: "")])
}
}
Desconectando usuários do SDK
Depois que um usuário é desconectado de uma aplicação host, você deve chamar o. NowSDK.logout() método para limpar esse usuário ServiceNow Sessões e tokens do SDK. Por exemplo:
func onLogout() {
NowSDK.logout()
}