Как я могу протестировать Apple Push Notification Service без iPhone?
Возможно ли тестирование Apple Push Notification Services без приложения iPhone? (Создание эмулятора на окнах?)
Если это не так, как я могу это проверить? Есть ли свободное приложение образца, скомпилированное для этого?
Я создал поставщика сервера, но мне нужно проверить функциональность.
Ответы
Ответ 1
Извините, но вам нужно найти какое-то оборудование для проверки этой функциональности.
Push-уведомления в симуляторе недоступны. Для них требуется профиль подготовки из iTunes Connect и, следовательно, они должны быть установлены на устройстве. Это также означает, что вам, вероятно, придется принять участие в программе разработчиков iPhone Apple и заплатить $99.
С яркой стороны, с обновлением iPhone OS 3.0, вы можете протестировать эту функциональность на любом устройстве, в том числе на iPhone первого поколения.
Ответ 2
Вы не можете протестировать реальные push-уведомления. Однако вы можете протестировать ответ своего приложения на симулированное push-уведомление, создав один программный и ручный запуск вашего метода AppDelegate - application:application didReceiveRemoteNotification:notification
.
Чтобы инициировать это из другого класса (например, UIViewController):
[[[UIApplication sharedApplication] delegate]
application:[UIApplication sharedApplication]
didReceiveRemoteNotification:testNotification];
TestNotification должен иметь тот же формат, что и реальное уведомление, а именно NSDictionary, содержащий объекты списка свойств плюс NSNull.
Вот пример того, как обеспечить testNotification
выше:
NSMutableDictionary *notification = [[NSMutableDictionary alloc] init];
[notification setValue:@"Test" forKey:@"alert"];
[notification setValue:@"default" forKey:@"sound"];
NSMutableDictionary *testNotification = [[NSMutableDictionary alloc] init];
[testNotification setValue:notification forKey:@"aps"];
Это должно создать разумное уведомление NSDictionary для работы с.
Ответ 3
В настоящее время мы можем протестировать push-уведомления с помощью этой библиотеки.
Очень легко отправить push через терминал:
echo -n '{"message":"message"}' | nc -4u -w1 localhost 9930
echo -n '{"aps":{"alert" : "message","badge" : 99,"sound" : "default"}, "myField" : 54758}' | nc -4u -w1 localhost 9930
Ответ 4
Симулятор не поддерживает Push Notifications.
И для того, чтобы нажимать с сервера, у вас должно быть устройство (ы), которое нужно нажать, а также ваше приложение на этом устройстве.
Токен содержит идентификатор приложения, а также идентификатор устройства.
Ответ 5
вы должны использовать
NSString *notificationString = @"{\"aps\":{\"alert\":\"Test alert\",\"sound\":\"default\"}}";
NSData *notificationData = [notificationString dataUsingEncoding:NSUTF8StringEncoding];
NSDictionary *testNotification = [NSJSONSerialization JSONObjectWithData:notificationData options:0 error:&error];
[[[UIApplication sharedApplication] delegate] application:[UIApplication sharedApplication] didReceiveRemoteNotification:testNotification fetchCompletionHandler:nil];