0

正如他们网站上提到的 3 个步骤

第 1 步 - 将 Push NotificationsSDK 添加到您的项目(完成)

第 2 步 - 在 Info.plist 中添加以下密钥 Pushwoosh_APPID 和您的 Pushwoosh id

第 3 步 - 在 App 委托中添加以下代码

#import "PushNotificationManager.h

- (void) onPushAccepted:(PushNotificationManager *)pushManager withNotification:(NSDictionary *)pushNotification {
    NSLog(@"Push notification received");
}

我做了所有这三个简单的步骤,但我没有在 PushWoosh 上订阅我的应用程序。如果我忘记执行任何步骤,谁能告诉我。

4

2 回答 2

2

最后我找到了方法。它现在工作。我从他们网站的教程中得到了代码。

所以我正在写步骤。

第 1 步 - 将 Push NotificationsSDK 添加到您的项目中

第 2 步 - 在 Info.plist 中添加以下密钥 Pushwoosh_APPID 和您的 Pushwoosh id

第 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];

}

下面给出了推送通知的代表

 - (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");

  }
于 2014-08-09T10:45:54.520 回答
0

如果您的设备通过 WiFi 连接到 Internet,并且消息无法通过设备,请确保 APNs 端口未被防火墙阻止。推送提供程序、iOS 设备和 Mac 计算机通常位于防火墙后面。要发送通知,您需要允许通过端口 2195 的入站和出站 TCP 数据包。通过 Wi-Fi 连接到推送服务的设备和计算机将需要允许通过端口 5223 的入站和出站 TCP 数据包。

推送服务的IP地址范围可能会发生变化;期望提供商将通过主机名而不是 IP 地址进行连接。推送服务使用负载平衡方案,为相同的主机名生成不同的 IP 地址。但是,整个 17.0.0.0/8 地址块已分配给 Apple,因此您可以在防火墙规则中指定该范围。

于 2014-08-08T05:45:37.880 回答