Initialisieren Sie das NowSDK in Ihrer Anwendung
Um auf die vom NowSDK bereitgestellten Funktionen zuzugreifen, müssen Sie zuerst das NowSDK in Ihrer Anwendung initialisieren.
Die Mobile SDK Initialisierung ist asynchron. Es ist empfehlenswert, den Initialisierungsprozess so früh wie möglich zu starten, z. B. in den Anwendungsdelegierten Anwendung (Anwendung:didFinishLaunchingWithOptions:) Funktion. Die Initialisierung muss nur einmal pro Anwendungsstart erfolgen. Es ist nicht erforderlich, eine erneute Initialisierung durchzuführen, wenn eine vorherige oder neue Szene erkannt wird.
Das folgende Diagramm zeigt die Initialisierungssequenz für NowSDK- und Funktionsservices:
Um zu initialisieren ServiceNow Mobile SDK In Ihrer iOS-Anwendung benötigen Sie einen Autorisierungsanbieter, der den entspricht NowSDKAuthorizationProviding , Der Ihre JWT-Anbieterinformationen und einen Delegierten verwendet, der den entspricht Geräteberechtigungsdelegierter .
Im Folgenden finden Sie ein Beispiel für eine Struktur einer SDK-Initialisierung. Weitere Codebeispiele finden Sie unter ServiceNow Mobile SDK Beispielanwendung.
//
// 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
}
Gastanwender
Wenn der aktuelle Anwender nicht authentifiziert ist, kann er als Gast auf die SDK-Funktionalität zugreifen. Um anzugeben, dass der aktuelle Anwender ein Gast ist, die AnforderungsAutorisierung Die Funktion im Autorisierungsanbieter muss mit einem Gasttyp von abgeschlossen werden AutorisierungToken , Wie unten dargestellt. Der Tokenwert ist in diesem Fall so lange nicht wichtig wie AutorisierungTokenType Ist auf festgelegt .Gast . Weitere Informationen zu Gastanwendern finden Sie unter Konfigurieren Sie den Gastanwenderzugriff.
// GuestTokenProvider.swift
import Foundation
import NowSDK
class GuestTokenProvider: NowSDKAuthorizationProviding {
func requestAuthorization(for instanceUrl: URL,
completion: @escaping ([AuthorizationToken]?) -> Void) {
completion([AuthorizationToken(type: .guest, token: "")])
}
}
Anwender werden vom SDK abgemeldet
Nachdem ein Anwender von einer Hostanwendung abgemeldet wurde, sollten Sie aufrufen NowSDK.Logout() Methode zum Löschen des Anwenders ServiceNow Sitzungen und Token aus dem SDK. Zum Beispiel:
func onLogout() {
NowSDK.logout()
}