Initialiser le NowSDK dans votre application
Pour accéder aux fonctionnalités fournies par le NowSDK, vous devez d’abord initialiser le NowSDK dans votre application.
L’initialisation Mobile SDK est asynchrone. Il recommandé de démarrer le processus d’initialisation le plus tôt possible, par exemple dans la fonction application(application :didFinishLaunchingWithOptions :) du délégué d’application. L’initialisation ne doit avoir lieu qu’une seule fois par lancement d’application. Il n’est pas nécessaire de réinitialiser lors du premier plan ou lorsqu’une nouvelle scène est détectée.
Le diagramme suivant montre la séquence d’initialisation pour NowSDK et les services fonctionnalités :
Pour initialiser dans ServiceNow Mobile SDK votre application iOS, vous aurez besoin d’un fournisseur d’autorisation conforme à NowSDKAuthorizationProviding, qui utilise les informations de votre fournisseur JWT, et d’un délégué conforme à DevicePermissionDelegate.
Voici un exemple de structure d’initialisation de SDK. Pour obtenir des exemples de code supplémentaires, consultez l’exemple d’application 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
}
Utilisateurs invités
Si l’utilisateur actuel n’est pas authentifié, il lui est possible d’accéder aux fonctionnalités du SDK en tant qu’invité. Pour indiquer que l’utilisateur actuel est un invité, la fonction requestAuthorization du fournisseur d’autorisation doit être complétée par un type d’invité AuthorizationToken, comme indiqué ci-dessous. Dans ce cas, la valeur du jeton n’a pas d’importance tant que AuthorizationTokenType est défini sur .guest. Pour plus d’informations sur les utilisateurs invités, reportez-vous à Configurer l’accès de l’utilisateur invité.
// GuestTokenProvider.swift
import Foundation
import NowSDK
class GuestTokenProvider: NowSDKAuthorizationProviding {
func requestAuthorization(for instanceUrl: URL,
completion: @escaping ([AuthorizationToken]?) -> Void) {
completion([AuthorizationToken(type: .guest, token: "")])
}
}
Déconnexion des utilisateurs du SDK
Une fois qu’un utilisateur est déconnecté d’une application hôte, vous devez appeler la méthode NowSDK.logout() pour effacer les ServiceNow sessions et les jetons de cet utilisateur du SDK. Par exemple :
func onLogout() {
NowSDK.logout()
}