Inicializar o NowSDK em sua aplicação
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 fase é detectada.
O diagrama a seguir mostra a sequência de inicialização do NowSDK e dos serviços do recurso:
Para inicializar o ServiceNow Mobile SDK em sua aplicação iOS, você precisará de um provedor de autorização em conformidade com NowSDKAutorizationProviding, que usa as informações do seu provedor JWT, e um delegado em conformidade com DevicePermissionDelegate.
A seguir está um exemplo de uma estrutura de uma inicialização de 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
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 de 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.
// GuestTokenProvider.swift
import Foundation
import NowSDK
class GuestTokenProvider: NowSDKAuthorizationProviding {
func requestAuthorization(for instanceUrl: URL,
completion: @escaping ([AuthorizationToken]?) -> Void) {
completion([AuthorizationToken(type: .guest, token: "")])
}
}
Como fazer logout de 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 do usuário do SDK. Por exemplo:
func onLogout() {
NowSDK.logout()
}