Интеграция 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, поэтому вы можете указать этот диапазон в правилах брандмауэра.

Другие вопросы по тегам