subscribeToChannelInBackground

subscribeToChannelInBackground

我已经这样配置了我的Parse接收api:

[Parse setApplicationId:@"***" clientKey:@"***"];

[application registerForRemoteNotificationTypes:UIRemoteNotificationTypeBadge|
 UIRemoteNotificationTypeAlert|
 UIRemoteNotificationTypeSound];


- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
{
    // Store the deviceToken in the current installation and save it to Parse.
     PFInstallation *currentInstallation = [PFInstallation currentInstallation];
    [currentInstallation setDeviceTokenFromData:deviceToken];
    [currentInstallation saveInBackground];
}

然后在我的代码中,我添加频道来订阅,如下所示:
PFInstallation *currentInstallation = [PFInstallation currentInstallation];
NSMutableArray *array = [NSMutableArray array];

for (Room *aRoom in rooms) {

    NSString *strChannel = [NSString stringWithFormat:@"pr_%@", aRoom.roomId];
    [array addObject:strChannel];
}

[currentInstallation setChannels:array];

在我的示例中,通道为“pr_4”。

但是,当我在该通道上推送内容时,解析仪表板告诉我没有人订阅该通道“pr_4”。我不明白我在做什么错。

最佳答案

在您提供的代码中,您实际上从未将PFInstallation对象保存到parse.com。您应该添加:

[currentInstallation saveInBackground];

在代码末尾,即在设置通道之后。

旁注:您还可以使用subscribeToChannelInBackground:类中的PFPush方法来为设备订阅频道:

subscribeToChannelInBackground:
异步将设备订阅推送通知的通道。

+ (void)subscribeToChannelInBackground:(NSString *)channel
参数

渠道

要订阅的频道。频道名称必须以
一个字母,仅包含字母,数字,破折号和下划线。

08-18 06:41