如何解决在注销#Quickblox APNS和APNS.VOIP时退订所有订阅
我试图在 iOS 快速 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
解决方法
确保您在删除订阅时连接到聊天,并仅在调用所有取消订阅完成时退出。您也可以简单地在应用中取消订阅远程通知和 PushKit。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。