Initialisieren Sie das NowSDK in Ihrer Anwendung
Um auf die von NowSDK bereitgestellte Funktionalität zuzugreifen, müssen Sie NowSDK zuerst in Ihrer Anwendung initialisieren.
Die Initialisierung Mobile SDK ist asynchron. Es wird empfohlen, den Initialisierungsprozess so früh wie möglich zu starten, z. B. in der Funktion application(application:didFinishLaunchingWithOptions:) des Anwendungsdelegierten. Die Initialisierung muss nur einmal pro Anwendungsstart erfolgen. Eine erneute Initialisierung ist nicht erforderlich, wenn der Vordergrund angezeigt wird oder eine neue -Scene erkannt wird.
Das folgende Diagramm zeigt die Initialisierungssequenz für NowSDK und Funktionsservices:
Um ServiceNow Mobile SDK in Ihrer iOS-Anwendung zu initialisieren, benötigen Sie einen Autorisierungs-Provider, der NowSDKAuthorizationProvider entspricht, der Ihre JWT-Provider-Informationen verwendet, und einen Delegierten, der DevicePermissionDelegate entspricht.
Das folgende Beispiel zeigt die Struktur einer SDK-Initialisierung. Weitere Codebeispiele finden Sie in der Beispielanwendung 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
}
Gastbenutzer
Wenn der aktuelle Benutzer nicht authentifiziert ist, kann er als Gast auf die SDK-Funktionalität zugreifen. Um anzugeben, dass der aktuelle Benutzer ein Gast ist, sollte die Funktion requestAuthorization im Autorisierungsanbieter mit dem Gasttyp AuthorizationTokenabgeschlossen werden, wie unten gezeigt. Der Tokenwert ist in diesem Fall nicht wichtig, solange AuthorizationTokenType auf .guest festgelegtist. Weitere Informationen zu Gastbenutzern finden Sie unter Konfigurieren Sie den Gastbenutzerzugriff.
// GuestTokenProvider.swift
import Foundation
import NowSDK
class GuestTokenProvider: NowSDKAuthorizationProviding {
func requestAuthorization(for instanceUrl: URL,
completion: @escaping ([AuthorizationToken]?) -> Void) {
completion([AuthorizationToken(type: .guest, token: "")])
}
}
Benutzer werden vom SDK abgemeldet
Nachdem ein Benutzer von einer Hostanwendung abgemeldet wurde, sollten Sie die NowSDK.logout()- Methode aufrufen, um die ServiceNow Sitzungen und Token dieses Benutzers aus dem SDK zu löschen. Beispiel:
func onLogout() {
NowSDK.logout()
}