是否可以在Application Delegate - iOS之外注册和捕获通知

时间:2012-05-23 00:13:19

标签: xcode cocoa-touch

是否可以在应用程序代表之外注册远程通知?

例如:是否可以在单独的表单中包含以下事件,并且仍然能够捕获通知事件?

-(void)application:(UIApplication*)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken

-(void)application:(UIApplication*)application didFailToRegisterForRemoteNotificationsWithError:(NSError*)error

-(void)application:(UIApplication*)application didReceiveRemoteNotification:(NSDictionary*)userInfo

我问这个的原因是因为我正在为一个生成Xcode项目和AFAIK的程序开发一个“扩展”,现在我们不能直接与应用程序委托表单交谈。

我已经尝试让单独的表单响应UIApplicationDelegate,但它仍然没有成功。

最后, 注册远程通知是否必须在完成加载事件中完成,因为我在该事件之外有以下代码。

-(void) registerForRemoteNotificationsWithBadge:(BOOL)badge Sound:(BOOL)sound Alert:(BOOL)alert{

    UIRemoteNotificationType notif;
    if (badge)
        notif = UIRemoteNotificationTypeBadge;
    if (sound)
        notif = notif | UIRemoteNotificationTypeSound;
    if (alert)
        notif = notif | UIRemoteNotificationTypeAlert;

    [[UIApplication sharedApplication] registerForRemoteNotificationTypes: notif];
}

洞察力将受到高度赞赏

1 个答案:

答案 0 :(得分:1)

Urban Airship'} iOS sdk实际上做了类似的事情。 UIAppDelegateProxyClass取代了默认的应用程序委托,并将消息转发给surrogate delegate和原始委托