Я отправляю push-уведомления из приложения PHP-приложения на iphone. Я отправляю push-уведомления о новых рабочих местах. Возможно ли, что, когда пользователь нажимает на представление push-уведомления, всплывает, а затем перенаправляется на конкретное задание на устройстве.
Я имею в виду, что я хотел знать, могу ли я отправлять какие-либо пользовательские данные с помощью push-уведомления, такого как jobId, что-то еще … чтобы конец Iphone мог извлекать и показывать конкретную работу?
Благодарю.
Независимо от языка и библиотеки, которую вы используете, полезная нагрузка push-уведомления – полезная нагрузка JSON:
{ "aps": { "badge": 10, "alert": "Hello world!", "sound": "cat.caf" } }
aps
токен – это данные APN Apple. Вы также можете добавить пользовательские данные в свою полезную нагрузку:
{ "aps": { "badge": 10, "alert": "Hello world!", "sound": "cat.caf" }, "job_id": 1 }
Когда вы получите уведомление в приложении, проверьте свой параметр в словаре уведомлений:
- (void)handleBackgroundNotification:(NSDictionary *)notification { NSDictionary *aps = (NSDictionary *)[notification objectForKey:@"aps"]; NSMutableString *alert = [NSMutableString stringWithString:@""]; if ([aps objectForKey:@"alert"]) { [alert appendString:(NSString *)[aps objectForKey:@"alert"]]; } if ([notification objectForKey:@"job_id"]) { // do something with job id int jobID = [[notification objectForKey:@"job_id"] intValue]; } }
Имейте в виду, что общий размер полезной нагрузки составляет 256 байтов , и это включает, конечно, ваши пользовательские параметры. Таким образом, вам может потребоваться (с целью снижения удобочитаемости) вызвать свой собственный параметр «ji» вместо «job_id», чтобы сжать байты.
Все это задокументировано в Руководстве по программированию локального и Push Notification в документации iOS. Определенно рекомендую прочитать, потому что это сложнее, чем изначально звучит (по крайней мере, это то, что я думал).
Да, вы можете отправлять пользовательские данные, проверять библиотеку apns-php для всех потребностей push-уведомлений:
Мы можем добавить несколько пользовательских данных, но, если я использую sub_action
в качестве имени, мой iPhone не может получать push-сообщения
Ява:
PayLoad payLoad = new PayLoad(); payLoad.addCustomDictionary("action", action_type); payLoad.addCustomDictionary("subaction", sub_action_type);