轻松取消订阅GCM订阅的所有主题(iOS设备)

Mei*_*shi 8 ios google-cloud-messaging

我正在尝试使用专为iOS设备设计的新版Google Cloud Messaging API,在iOS设备中通过主题系统推送通知.

我有正确的证书,所以我可以从创建的主题接收通知.我订阅主题的代码如下:

if (_registrationToken && _connectedToGCM) {
    [[GCMPubSub sharedInstance] subscribeWithToken:_registrationToken
                                             topic:topicToSubscribe
                                           options:nil
                                           handler:^(NSError *error) {
                                               if (error) {
                                                 //handle error here
                                               } else {
                                                   self.subscribedToTopic = true;
                                               }
                                           }];
}
Run Code Online (Sandbox Code Playgroud)

我知道取消订阅的等效函数,但此函数需要一个主题名称.有没有办法在订阅之前检索我的应用可能订阅未注册的所有主题?

bit*_*tek 7

无法从Google Cloud Messaging服务检索您的应用订阅的主题列表.

您必须跟踪列表并将其保留在您的应用程序(硬编码,存储在首选项,数据库,文件等)或您的服务器上.

当您决定让用户取消订阅时,从您存储它的位置检索主题列表并将其传递给unsubscribeWithToken:token:topic:options:实现主题消息页面上提到的处理程序


小智 6

或者,在接收消息时,您可以检查消息"来自".如果它来自您不再感兴趣的主题,则可以取消订阅而不是处理该消息.