注销时取消订阅所有订阅#Quickblox APNS & APNS.VOIP
Posted
技术标签:
【中文标题】注销时取消订阅所有订阅#Quickblox APNS & APNS.VOIP【英文标题】:Unsubscribe all subscriptions on logout #Quickblox APNS & APNS.VOIP 【发布时间】:2020-10-07 11:18:06 【问题描述】:我正在尝试在 iOS swift Quickblox 项目中在注销时取消订阅订阅APNS & APNS.VOIP。它只退订其中一个,任何人都可以指导我。
这是我的注销代码。
@objc func didTapLogout(_ sender: UIBarButtonItem)
if QBChat.instance.isConnected == false
SVProgressHUD.showError(withStatus: "Error")
return
SVProgressHUD.show(withStatus: "SA_STR_LOGOUTING".localized)
SVProgressHUD.setDefaultMaskType(.clear)
guard let identifierForVendor = UIDevice.current.identifierForVendor else
return
let uuidString = identifierForVendor.uuidString
#if targetEnvironment(simulator)
disconnectUser()
#else
QBRequest.subscriptions(successBlock: (response, subscriptions) in
if let subscriptions = subscriptions
for subscription in subscriptions
if let subscriptionsUIUD = subscriptions.first?.deviceUDID,
subscriptionsUIUD == uuidString,
subscription.notificationChannel == .APNS
self.unregisterSubscription(forUniqueDeviceIdentifier: uuidString)
return
self.disconnectUser()
) response in
if response.status.rawValue == 404
self.disconnectUser()
#endif
private func unregisterSubscription(forUniqueDeviceIdentifier uuidString: String)
QBRequest.unregisterSubscription(forUniqueDeviceIdentifier: uuidString, successBlock: response in
self.disconnectUser()
, errorBlock: error in
if let error = error.error
SVProgressHUD.showError(withStatus: error.localizedDescription)
return
SVProgressHUD.dismiss()
)
环境详情
信息价值 ios 版本 13.0 Quickblox iOS SDK 版本 2.17.4 QuickbloxWebRTC SDK 版本 2.7.4 Xcode 版本,例如Xcode 12.0【问题讨论】:
【参考方案1】:确保您在删除订阅时已连接到聊天,并且仅在调用所有取消订阅完成时才退出。您还可以在应用中简单地取消订阅远程通知和 PushKit。
【讨论】:
以上是关于注销时取消订阅所有订阅#Quickblox APNS & APNS.VOIP的主要内容,如果未能解决你的问题,请参考以下文章
IBM Workilght 6.0 - 注销后无法订阅推送通知