如何知道在Pubnub中取消订阅频道请求是否成功?

时间:2016-07-24 13:59:50

标签: iphone swift push-notification pubnub

当我从我的应用程序退出时,我正试图取消订阅PubNub频道,就像这样

client?.unsubscribeFromAll()

我的问题是我无法确定取消订阅频道流程是否成功!

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

所以我的问题是如何确定取消订阅频道流程?

编辑

我在我的Pubnub频道发送推送通知,所以我希望在用户注销后再也不会收到推送通知,所以我决定取消订阅频道,但似乎

client?.unsubscribeFromAll()

不起作用,因为虽然我从我的应用程序退出,但仍然会收到推送通知,所以你知道如何取消订阅PubNub频道,所以在我从我的应用程序退出后我不会收到推送通知吗?

1 个答案:

答案 0 :(得分:3)

要解决这个问题,您应该使用委托使用的相同回调来跟踪客户端状态更改,如下所示:

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

    if status.operation == .UnsubscribeOperation {

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

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

修改
实时频道和推送通知启用/禁用 - 彼此之间没有链接,如果已启用明确推送通知,则应手动禁用它们。取消订阅只是与实时数据通道断开连接。

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

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

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

最好的问候,
塞吉