【发布时间】: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
【问题讨论】:
标签: ios swift voip quickblox unsubscribe