---
sourceDocument: Xanadu API リファレンス
sourceDocumentLink: https://www.servicenow.com/docs/r/ja-JP/xanadu/api-reference

 Release :

    - xanadu

ft:locale :

    - ja-JP

ft:publication_title :

    - Xanadu API リファレンス

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# NowPushService クラス: iOS

# NowPushService クラス: iOS {#ariaid-title1}

* リリースバージョン: Xanadu
* 
* 更新日 2024年08月01日
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 所要時間：7分

NowPushService クラスは、プッシュ通知サービスとの対話を可能にする関数を提供します。
{#NowPushServiceiOSAPI__entry__2}

| 名前 | Description (説明) |
|-|-|
| 構成 | サービスが初期化されたときに指定された構成設定。 データ型: [NowServiceConfiguration](https://www.servicenow.com/docs/stoU_DsvecOSpmkh8Wo3FA#NowServiceConfigurationiOSStruct "NowServiceConfiguration 構造体は、フィーチャ サービスの構成情報を定義します。") |
[表 : 1. プロパティ]

## NowPushService - registerPushToken(_token: Data, pushAppName: String, environment: NowPushEnvironment, completion: @escaping (Result\<Data, NowPushError\>) -\> Void) {#ariaid-title2}

現在のiOSデバイスと指定されたアプリケーションのプッシュ通知を識別するために使用されるServiceNowインスタンスに一意のトークンを登録します。
{#NPushServ-registerPushToken_O_S_O_O__table_cr3_pgh_trb__entry__3}

| 名前 | タイプ | Description (説明) |
|-|-|-|
| _トークン | Data (データ) | 登録するプッシュトークンのデータオブジェクト。これは、 Apple 開発者サイトから取得したトークンです。詳細については、『 Mobile SDK 開発者ガイド - iOS』を参照してください。 |
| プッシュアプリ名 | 文字列 | このトークンが登録されているプッシュアプリケーションの名前。 |
| 環境 | NowPushEnvironment | トークンが登録されている環境。 有効な値： * 本番 * サンドボックス |
| 完了 | @escaping (Result\<Data, NowPushError\>) → void | トークンの登録が試行された後に実行する完了ハンドラー。 * 成功:iOS プッシュ通知証明書。 * エラー:NowPushError - トークンを登録しようとしたときに発生したエラーに関する情報。 可能な値： * decoding: デコードエラーが発生しました。 * httpRequestFailure:http 呼び出しが成功しなかった場合に返される汎用エラー (2xx)。 * notAuthorized:要求者に、指定されたプッシュ通知操作を実行する権限がありません。 * unsupportedData:プッシュペイロードが無効です。 {#NPushServ-registerPushToken_O_S_O_O__ul_pmt_m5h_trb} {#NPushServ-registerPushToken_O_S_O_O__ul_lxy_k3h_trb} |
[表 : 2. パラメーター]

{#NPushServ-registerPushToken_O_S_O_O__table_cr3_pgh_trb} {#NPushServ-registerPushToken_O_S_O_O__table_dr3_pgh_trb__entry__2}

| タイプ | 説明 |
|-|-|
| なし |   |
[表 : 3. 返される内容]

{#NPushServ-registerPushToken_O_S_O_O__table_dr3_pgh_trb}  
この例では、TestPushApp アプリケーションのプッシュ通知トークンを登録する方法を示します。

    func registerForPushNotifications(deviceToken: Data) {
      pushService.registerPushToken(deviceToken,
          pushAppName: "TestPushApp",
          environment: environment) { [weak self] result in
        guard let self = self else { return }
        switch result {
          case .success:
            UserDefaults.standard.set(true, forKey: "pushNotificationsRegistered")
            self.pushRegistrationState = .registrationSuccess
          case .failure:
            UserDefaults.standard.set(false, forKey: "pushNotificationsRegistered")
            self.pushRegistrationState = .registrationFailed
        }
      }
    }

## NowPushService - unregisterPushToken(_token: Data, pushAppName: String, environment: NowPushEnvironment, completion: @escaping (Result\<Data, NowPushError\>) -\> Void) {#ariaid-title3}

以前に登録したプッシュトークンを登録解除します。
{#NPushServ-unregisterPushToken_O_S_O_O__table_fvk_rjh_trb__entry__3}

| 名前 | タイプ | Description (説明) |
|-|-|-|
| _トークン | Data (データ) | 登録解除するプッシュトークンのデータオブジェクト。 |
| プッシュアプリ名 | 文字列 | このトークンを登録解除するプッシュアプリケーションの名前。 |
| 環境 | NowPushEnvironment | トークンが登録されている環境。 有効な値： * 本番 * サンドボックス |
| 完了 | @escaping (Result\<Data, NowPushError\>) → void | トークンの登録解除が試行された後に実行する完了ハンドラー。 * 成功: API 応答データ。 * エラー: `NowPushError` - トークンの登録解除を試みたときに発生したエラーに関する情報。 可能な値： * decoding: デコードエラーが発生しました。 * httpRequestFailure:http 呼び出しが成功しなかった場合に返される汎用エラー (2xx)。 * notAuthorized:要求者に、指定されたプッシュ通知操作を実行する権限がありません。 * unsupportedData:プッシュペイロードが無効です。 {#NPushServ-unregisterPushToken_O_S_O_O__ul_pmt_m5h_trb} {#NPushServ-unregisterPushToken_O_S_O_O__ul_lxy_k3h_trb} |
[表 : 4. パラメーター]

{#NPushServ-unregisterPushToken_O_S_O_O__table_fvk_rjh_trb} {#NPushServ-unregisterPushToken_O_S_O_O__table_gvk_rjh_trb__entry__2}

| タイプ | 説明 |
|-|-|
| なし |   |
[表 : 5. 返される内容]

{#NPushServ-unregisterPushToken_O_S_O_O__table_gvk_rjh_trb}  
この例では、TestPushApp アプリケーションに関連付けられているプッシュ通知トークンを登録解除する方法を示します。

    func unregisterFromPushNotifications(deviceToken: Data) {
      pushService.unregisterPushToken(deviceToken, pushAppName: "TestPushApp", environment: environment) { [weak self] result in
        guard let self = self else { return }
        switch result {
          case .success:
            UserDefaults.standard.set(false, forKey: "pushNotificationsRegistered")
            self.pushRegistrationState = .unregisterSuccess
          case .failure:
            self.pushRegistrationState = .unregisterFailed
        }
      }
    }

## NowPushService - payloadFromUserInfo(_userInfo: \[AnyHashable:任意\]) {#ariaid-title4}

`userInfo` のキーと値のペアを解析して `NowPushPayload` オブジェクトにします。
{#NPushServ_payloadFromUserInfo_O__table_vqs_mkh_trb__entry__3}

| 名前 | タイプ | Description (説明) |
|-|-|-|
| _userInfo | \[AnyHashable:任意\] | プッシュ通知の一部として受信したプッシュペイロードコンテンツ。 |
[表 : 6. パラメーター]

{#NPushServ_payloadFromUserInfo_O__table_vqs_mkh_trb} {#NPushServ_payloadFromUserInfo_O__table_wqs_mkh_trb__entry__2}

| タイプ | Description (説明) |
|-|-|
| Result\<NowPushPayload、NowPushError\> | ペイロード解析の結果を返します。 * 成功: `NowPushPayload` オブジェクトを解析しました。 * エラー: `NowPushError` - 指定されたユーザーペイロードの解析中に発生したエラーに関する情報。 可能な値： * decoding: デコードエラーが発生しました。 * httpRequestFailure:http 呼び出しが成功しなかった場合に返される汎用エラー (2xx)。 * notAuthorized:要求者に、指定されたプッシュ通知操作を実行する権限がありません。 * unsupportedData:プッシュペイロードが無効です。 {#NPushServ_payloadFromUserInfo_O__ul_pmt_m5h_trb} |
[表 : 7. 返される内容]

{#NPushServ_payloadFromUserInfo_O__table_wqs_mkh_trb}  
この例では、ユーザー ペイロードを解析する方法を示します。

    func userNotificationCenter(_ center: UNUserNotificationCenter,
        didReceive response: UNNotificationResponse,
        withCompletionHandler completionHandler: @escaping () -> Void) {
      guard let pushService = pushService else {
        completionHandler()
        return
      }
      let userInfo = response.notification.request.content.userInfo
      _ = pushService.payloadFromUserInfo(userInfo)
        .flatMap(handleNowPushPayload)
    }


    func handleNowPushPayload(_ payload: NowPushPayload) -> Result<Void, NowPushError> {
      guard payload is NowPushVirtualAgent else {
        return .failure(NowPushError.unsupportedData)
      }
      launchVirtualAgent()
      return .success(())
    }


