Интеграция PushWoosh на iOS 7 не подписывается на pushwoosh
Как упомянуто на их сайте 3 шага
Шаг 1 - Добавьте Push NotificationsSDK в ваш проект (Готово)
Шаг 2 - В Info.plist добавьте следующий ключ Pushwoosh_APPID с вашим идентификатором Pushwoosh
Шаг 3 - Добавьте приведенный ниже код в приложение делегат
#import "PushNotificationManager.h
- (void) onPushAccepted:(PushNotificationManager *)pushManager withNotification:(NSDictionary *)pushNotification {
NSLog(@"Push notification received");
}
Я сделал все эти три простых шага, но у меня нет подписки на приложение в PushWoosh. Может ли кто-нибудь сказать мне, если я забуду сделать какие-либо шаги.
2 ответа
Наконец я нашел способ. Теперь это работает. я получил код из учебника их сайта.
Итак, я пишу шаги.
Шаг 1 - Добавьте Push NotificationsSDK в ваш проект
Шаг 2 - В Info.plist добавьте следующий ключ Pushwoosh_APPID с вашим идентификатором Pushwoosh
Шаг 3 - Добавьте -ObjC и -all_load в другие флаги компоновщика. (пример ниже).
Шаг 4 - Добавьте приведенный ниже код в AppDelegate.h
**#import "Pushwoosh/PushNotificationManager.h"**
@interface AppDelegate : UIResponder <UIApplicationDelegate,**PushNotificationDelegate**>
Шаг 5 - Добавьте код ниже в AppDelegate.m
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
//Your Other Code
[PushNotificationManager pushManager].delegate = self;
[[PushNotificationManager pushManager] handlePushReceived:launchOptions];
[[PushNotificationManager pushManager] sendAppOpen];
[[PushNotificationManager pushManager] registerForPushNotifications];
}
Ниже приведены делегаты для push-уведомлений
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
[[PushNotificationManager pushManager] handlePushRegistration:deviceToken];
}
- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error {
[[PushNotificationManager pushManager] handlePushRegistrationFailure:error];
}
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {
[[PushNotificationManager pushManager] handlePushReceived:userInfo];
}
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {
NSDictionary *pushDict = [userInfo objectForKey:@"aps"];
BOOL isSilentPush = [[pushDict objectForKey:@"content-available"] boolValue];
if (isSilentPush) {
NSLog(@"Silent push notification:%@", userInfo);
//load content here
// must call completionHandler
completionHandler(UIBackgroundFetchResultNewData);
}
else {
[[PushNotificationManager pushManager] handlePushReceived:userInfo];
// must call completionHandler
completionHandler(UIBackgroundFetchResultNoData);
}
}
- (void) onPushAccepted:(PushNotificationManager *)pushManager withNotification:(NSDictionary *)pushNotification
{
NSLog(@"Push notification received");
}
Если ваше устройство подключено к Интернету через Wi-Fi, а сообщения не поступают на устройство, убедитесь, что порты APN не заблокированы брандмауэром. Поставщики Push, устройства iOS и компьютеры Mac часто находятся за брандмауэрами. Чтобы отправлять уведомления, вам необходимо разрешить входящие и исходящие TCP-пакеты через порт 2195. Устройства и компьютеры, подключающиеся к услуге push через Wi-Fi, должны будут разрешать входящие и исходящие TCP-пакеты через порт 5223.
Диапазон IP-адресов для push-службы может быть изменен; ожидается, что провайдеры будут подключаться по имени хоста, а не по IP-адресу. Служба push использует схему балансировки нагрузки, которая выдает другой IP-адрес для того же имени хоста. Однако весь адресный блок 17.0.0.0/8 назначен Apple, поэтому вы можете указать этот диапазон в правилах брандмауэра.