アプリケーションで NowSDK を初期化する

  • リリースバージョン: Washingtondc
  • 更新日 2024年02月01日
  • 読む4読むのに数分
  • NowSDK が提供する機能にアクセスするには、まずアプリケーションで NowSDK を初期化する必要があります。

    初期化は非同期です Mobile SDK 。初期化プロセスは、アプリケーション デリゲートの application (application:didFinishLaunchingWithOptions:) 関数など、できるだけ早く開始することをお勧めします。初期化は、アプリケーションの起動ごとに 1 回だけ実行する必要があります。フォアグラウンドの場合や、新しいシーンが検出されたときに再初期化する必要はありません。

    次の図は、NowSDK とフィーチャ サービスの初期化シーケンスを示しています。


    MobileSDK の統合フロー図

    iOS アプリケーションで初期化 ServiceNow Mobile SDK するには、JWT プロバイダー情報を使用する NowSDKAuthorizationOffering に準拠した承認プロバイダーと、 DevicePermissionDelegate に準拠するデリゲートが必要です。

    SDK 初期化の構造の例を次に示します。その他のコード例については、サンプル アプリケーションを参照してください 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 
    
    }

    ゲストユーザー

    現在のユーザーが認証されていない場合は、ゲストとして SDK 機能にアクセスできます。現在のユーザーがゲストであることを示すには、次に示すように、承認プロバイダーの requestAuthorization 関数をゲストの種類の AuthorizationToken で完了する必要があります。この場合のトークン値は、 AuthorizationTokenType.guest に設定されている限り重要ではありません。ゲスト ユーザの詳細については、「」を参照してください ゲストユーザーアクセスの設定

    //  GuestTokenProvider.swift 
    import Foundation 
    import NowSDK 
    class GuestTokenProvider: NowSDKAuthorizationProviding { 
        func requestAuthorization(for instanceUrl: URL,  
            completion: @escaping ([AuthorizationToken]?) -> Void) { 
            completion([AuthorizationToken(type: .guest, token: "")]) 
        } 
    } 

    SDK からのユーザーのログアウト

    ユーザーがホストアプリケーションからログアウトしたら、 NowSDK.logout() メソッドを呼び出して、そのユーザーの ServiceNow セッションとトークンを SDK からクリアする必要があります。たとえば、次のようになります。

    func onLogout() {
      NowSDK.logout()
    }