Push-уведомления IOS для конкретных пользователей?
Можно ли отправить push-уведомление iOS на конкретное устройство? Я создал приложение типа форума, на котором пользователь может создать вопрос, а другие могут ответить на него. Мне нужно отправить push-уведомление iOS конкретному пользователю, который задал вопрос, информируя его об ответе на этот вопрос. Возможно ли это сделать с помощью PHP или другого метода?
4 ответа
Да, вы можете абсолютно точно отправить push-уведомление на определенное устройство.
Для начала необходимо запросить у устройства разрешение на получение push-уведомлений:
[[UIApplication sharedApplication]
registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge |
UIRemoteNotificationTypeSound |
UIRemoteNotificationTypeAlert)];
Затем, если пользователь примет, вы получите сообщение делегата didRegisterForRemoteNotificationsWithDeviceToken. Затем вы передаете этот deviceToken на свой сервер с идентификатором пользователя из вашего приложения, который идентифицирует пользователя на вашем форуме. Что-то вроде этого:
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)_deviceToken {
NSString* deviceToken = [[[[_deviceToken description]
stringByReplacingOccurrencesOfString: @"<" withString: @""]
stringByReplacingOccurrencesOfString: @">" withString: @""]
stringByReplacingOccurrencesOfString: @" " withString: @""];
//send deviceToken and your userId to your server to associate the two together
}
Затем вам нужно создать свой push-сервер, который будет отправлять уведомления, и я не буду вдаваться в подробности, так как для этого есть тонна документации в сети, и это довольно сложно. Для этого вы также можете использовать сторонние сервисы, такие как Urban Airship и StackMob.
Когда вы отправляете push-уведомление, устройство получает уникальный идентификатор, который вы используете для отправки в Apple, чтобы сообщить им, кому доставить сообщение. Когда вы получаете этот уникальный идентификатор, вы отправляете его на свой сервер, когда вы делаете это, вы можете включать любые другие данные, такие как имя пользователя, ссылки и т. Д.
Это скорее проблема на стороне сервера, чем проблема iOS.
Матеус,
ДЛ: Да, вы можете.
Поскольку ваше приложение на форуме написано на php, вот несколько фреймворков, которые могут быть вам полезны:
Если вы в конечном итоге используете Easy APNS: вы можете отправлять сообщения одному пользователю (как в вашем примере) или группе пользователей (возможно, всем, кто "смотрит" эту ветку), используя массив идентификаторов пользователей. Несколько примеров доступны здесь: https://github.com/manifestinteractive/easyapns/blob/master/src/php/samples.php
Конечно, существует множество бесплатных серверов push-уведомлений - например, QuickBlox. Вам не нужен серверный код, QuickBlox уже написал все для вас.
Просто посмотрите на пример Push-уведомлений iOS. Этот пример позволяет в любое время отправлять уведомления и оповещения определенному пользователю или группе пользователей через API или простую в использовании панель администратора. Просто скачайте его, переместите некоторый код из него в свое приложение и наслаждайтесь им.