iphone - 如何知道 Pubnub 中的退订 channel 请求是否成功?

标签 iphone swift push-notification pubnub

当我从我的应用程序注销时,我正在尝试取消订阅 PubNub channel ,就像这样

client?.unsubscribeFromAll()

我的问题是我无法确定退订 channel 过程是否成功!

没有错误、成功的完成处理程序。

所以我的问题是如何确定取消订阅 channel 的过程?

编辑

我在我的 Pubnub channel 中发送推送通知,所以我希望在用户注销后不再收到推送通知,所以我决定取消订阅该 channel ,但看起来

client?.unsubscribeFromAll()

不起作用,因为尽管我从我的应用程序注销了,但我仍然收到推送通知,所以你知道如何取消订阅 PubNub channel ,这样我从我的应用程序注销后就不会收到推送通知了吗?

最佳答案

要弄清楚这一点,您应该使用委托(delegate)用来跟踪客户端状态更改的相同回调,如下所示:

func client(client: PubNub!, didReceiveStatus status: PNSubscribeStatus!) {

    if status.operation == .UnsubscribeOperation {

        if !status.error { /* Handle successful unsubscription. */ }
        else { /* Handle unsubscription error. */ }
    }
}

在以下情况下的回调:使用状态更改、存在和消息到达,因为可能很少有观察者想知道这一点。在这些情况下,其他操作通常基于上下文和完成 block 绰绰有余。

编辑
实时 channel 和推送通知启用/禁用 - 不相互链接,如果已明确启用推送通知,则也应手动禁用它们。取消订阅只是与实时数据通道断开连接。

使用下面的代码禁用指定 devicePushToken 的所有推送通知:

client?.removeAllPushNotificationsFromDeviceWithPushToken(devicePushToken, andCompletion: { (status) in

    if !status.error { /* Handle push notification disable completed successfully. */ }
    else { /* Handle push notification disable did fail. */ }
})

最好的问候,
谢尔盖

关于iphone - 如何知道 Pubnub 中的退订 channel 请求是否成功?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38552829/

相关文章:

ios - iPhone 4s (8.4.1) 的 linphone 库中的 Sigabart 错误

iphone - 使用 AVAudioPlayer 的音频流

swift - Xcode 6 Beta/Swift - Playground 不更新

android - 为一个应用程序发送推送通知

iphone - 如何在 UIView 中确定手势识别器和触摸的优先级

iphone - 按钮触发另一个 View

string - Swift String.removeRange 无法编译

iOS:用户在通知提醒对话框中选择 "Cancel"然后手动启动应用程序后如何获取推送通知对象

ios - 如何在 iOS 10+ 中自定义通知的简短预览

iphone - 是否可以在 App Store 上提交应用程序更新而不会丢失评论?