NowPushService クラス: iOS
NowPushService クラスは、プッシュ通知サービスとの対話を可能にする関数を提供します。
| 名前 | Description (説明) |
|---|---|
| 構成 | サービスが初期化されたときに指定された構成設定。 データ型: NowServiceConfiguration |
NowPushService - registerPushToken(_token: Data, pushAppName: String, environment: NowPushEnvironment, completion: @escaping (Result<Data, NowPushError>) -> Void)
現在のiOSデバイスと指定されたアプリケーションのプッシュ通知を識別するために使用されるServiceNowインスタンスに一意のトークンを登録します。
| 名前 | タイプ | Description (説明) |
|---|---|---|
| _トークン | Data (データ) | 登録するプッシュトークンのデータオブジェクト。これは、 Apple 開発者サイトから取得したトークンです。詳細については、『 Mobile SDK 開発者ガイド - iOS』を参照してください。 |
| プッシュアプリ名 | 文字列 | このトークンが登録されているプッシュアプリケーションの名前。 |
| 環境 | NowPushEnvironment | トークンが登録されている環境。 有効な値:
|
| 完了 | @escaping (Result<Data, NowPushError>) → void | トークンの登録が試行された後に実行する完了ハンドラー。
|
| タイプ | 説明 |
|---|---|
| なし |
この例では、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)
以前に登録したプッシュトークンを登録解除します。
| 名前 | タイプ | Description (説明) |
|---|---|---|
| _トークン | Data (データ) | 登録解除するプッシュトークンのデータオブジェクト。 |
| プッシュアプリ名 | 文字列 | このトークンを登録解除するプッシュアプリケーションの名前。 |
| 環境 | NowPushEnvironment | トークンが登録されている環境。 有効な値:
|
| 完了 | @escaping (Result<Data, NowPushError>) → void | トークンの登録解除が試行された後に実行する完了ハンドラー。
|
| タイプ | 説明 |
|---|---|
| なし |
この例では、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:任意])
userInfo のキーと値のペアを解析して NowPushPayload オブジェクトにします。
| 名前 | タイプ | Description (説明) |
|---|---|---|
| _userInfo | [AnyHashable:任意] | プッシュ通知の一部として受信したプッシュペイロードコンテンツ。 |
| タイプ | Description (説明) |
|---|---|
| Result<NowPushPayload、NowPushError> | ペイロード解析の結果を返します。
|
この例では、ユーザー ペイロードを解析する方法を示します。
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(())
}