Как вы удалите пользователя от получения push-уведомлений с использованием синтаксического анализа? Например, если пользователь переходит к своим настройкам (в приложении) и решает отключить push-уведомления ...Удалить оповещения пользователя push iOS на Parse
Я думал, что удаление их «глобального» канала сделало бы трюк, но пользователь, похоже, все еще будет получить их. И подумайте об этом, если это сработает, они все равно смогут получить толки, отправленные на другие каналы, с которыми был связан пользователь. Во всяком случае, каково решение этого?
Я пробовал эти два подхода:
currentInstallation.channels = @[ @"global" ]; //enable
currentInstallation.channels = @[]; //disable
И
[currentInstallation addUniqueObject:@"global" forKey:@"channels"]; //enable
[currentInstallation removeObject:@"global" forKey:@"channels"]; //disable
Я тогда попытался отправки протолкнуть разбирает веб-интерфейс и для «всех» и только те, совпадающие с " глобальный "канал. Не повезло, пользователь все равно получил его.
Я в значительной степени последовал за инструкцией по настройке iOS Push. Это как мой implementaion выглядит:
-(void)displayPushAuthRequest{
UIApplication *app = [UIApplication sharedApplication];
if([app respondsToSelector:@selector(registerUserNotificationSettings:)] && [app respondsToSelector:@selector(registerForRemoteNotifications)]){
//ios 8
UIUserNotificationType userNotificationTypes = (UIUserNotificationTypeAlert |
UIUserNotificationTypeBadge |
UIUserNotificationTypeSound);
UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:userNotificationTypes
categories:nil];
[[UIApplication sharedApplication] registerUserNotificationSettings:settings];
[[UIApplication sharedApplication] registerForRemoteNotifications];
}
{
//ios 7
UIRemoteNotificationType myTypes = UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeSound;
[[UIApplication sharedApplication] registerForRemoteNotificationTypes:myTypes];
}
}
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
// Save the settings locally (first time)
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"didRegisterForRemoteNotifications"];
[[NSUserDefaults standardUserDefaults]synchronize];
// Store the deviceToken in the current installation and save it to Parse.
PFInstallation *currentInstallation = [PFInstallation currentInstallation];
[currentInstallation setDeviceTokenFromData:deviceToken];
currentInstallation.channels = @[ @"global" ];
[currentInstallation saveInBackground];
}
Как вы подписываете пользователей на push-уведомления в didRegister? Кроме того, что-то принципиально неверно, если вы устанавливаете конкретный канал в консоли, но он все равно посылает им, то есть где-то фундаментальная ошибка. Кроме того, вы сохраняете 'removeObject: forKey:'? это не в вашем примере, поэтому я должен был спросить – soulshined