Initialisieren Sie das NowSDK in Ihrer Anwendung
Um auf die vom NowSDK bereitgestellten Funktionen zuzugreifen, müssen Sie das NowSDK zuerst in Ihrer Anwendung initialisieren.
Die Initialisierung Mobile SDK erfolgt asynchron. Es empfiehlt sich, 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 Sie in den Vordergrund versetzt werden oder eine neue Stimmung 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 Autorisierungsanbieter gemäß NowSDKAuthorization Bereitstellung, der Ihre JWT-Anbieterinformationen verwendet, und einen Delegierten gemäß DevicePermissionDelegate.
Im Folgenden finden Sie ein Beispiel für die Struktur einer SDK-Initialisierung. Weitere Codebeispiele finden Sie unter 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
}
Gastanwender
Wenn der aktuelle Benutzer nicht authentifiziert ist, kann er als Gast auf die SDK-Funktionalität zugreifen. Um anzugeben, dass der aktuelle Anwender ein Gast ist, muss die Funktion requestAuthorization im Autorisierungsanbieter mit dem Gasttyp AuthorizationTokenabgeschlossen werden (siehe unten). Der Tokenwert ist in diesem Fall nicht wichtig, solange AuthorizationTokenType auf .guestfestgelegt ist. 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: "")])
}
}
Abmelden von Anwendern aus dem SDK
Nachdem ein Benutzer von einer Hostanwendung abgemeldet wurde, sollten Sie die Methode NowSDK.logout() aufrufen, um die ServiceNow -Sitzungen und Token dieses Benutzers aus dem SDK zu löschen. Zum Beispiel:
func onLogout() {
NowSDK.logout()
}