我已经这样配置了我的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
参数
渠道
要订阅的频道。频道名称必须以
一个字母,仅包含字母,数字,破折号和下划线。