我正在尝试使用PushWoosh在iOS应用程序上实现推送通知。但是,他们的教程...没有很好的说法。他们的教程很糟糕。它只是发臭。这只是最糟糕的。这是整个教程步骤:
对于真正的无缝集成,您要做的就是简单地将Push NotificationsSDK添加到您的项目!
在您的info.plist中添加以下键PushWoosh_appid,并使用您的PushWoosh应用程序ID字符串值
处理推送通知,将以下功能添加到您的应用程序委托。M文件
#import "PushNotificationManager.h"
- (void) onPushAccepted:(PushNotificationManager *)pushManager withNotification:(NSDictionary *)pushNotification {
NSLog(@"Push notification received");
}
就是这样!容易,不是吗?
哇,这很容易。除了几件小事。...这是一个空的方法!该方法内部没有任何东西。没有电话如何在服务中注册它,什么都没有!有人在正确设置所有需要的内容方面有一些经验吗?甚至他们的示例应用程序在应用程序委托中没有任何内容来引用此信息。
SDK使用Objective-C运行时的功率自动处理注册和所有内容。您只需要将-OBJC标志传递给链接器(这是非常重要的步骤)。
看起来最简单的方法有时会使开发人员感到困惑,而不是"艰苦而痛苦"。
感谢您的反馈,我们将提供更好的文档!
PushWoosh Team
我最近刚碰到了这个,以为我会在这里添加结果。至少对我自己来说,链接标志不起作用的原因是我将其设置在项目下,而不是将其设置在目标上。将其切换到目标后,它开始按照宣传的方式注册设备。
这是遗漏的。在didfinishlaunchingwithoptions方法中,您需要添加:
[[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound)];
pushManager = [[PushNotificationManager alloc] initWithApplicationCode:@"YOUR_APP_ID" appName:@"YOUR_APP_NAME"];
pushManager.delegate = self;
[pushManager handlePushReceived:launchOptions];
然后,您还需要AppDelegate.m
中的这些方法- (void)application:(UIApplication *)app didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)devToken
{
[pushManager handlePushRegistration:devToken];
}
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)pushMessage
{
[pushManager handlePushReceived:pushMessage];
}