解析iOS API - 添加频道

时间:2014-03-14 10:01:18

标签: ios push-notification parse-platform channel

我已经像我这样配置了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”。我不明白我做错了什么。

1 个答案:

答案 0 :(得分:5)

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

[currentInstallation saveInBackground];
在您设置频道后,在代码末尾


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

  

subscribeToChannelInBackground:

     

将设备异步订阅到推送通知频道。

     

+ (void)subscribeToChannelInBackground:(NSString *)channel

     

<强>参数

     

信道

     

订阅频道。频道名称必须以。开头   一个字母,只包含字母,数字,短划线和下划线。