【问题标题】:How to get notification when push notification is received in iOS without AppDelegate?在没有 AppDelegate 的情况下在 iOS 中收到推送通知时如何获取通知?
【发布时间】:2014-10-26 18:58:08
【问题描述】:

我正在为 iOS 构建推送通知的静态库。在无法访问AppDelegate 的情况下,如何知道何时收到推送通知?换句话说,我不希望用户调用某些库委托以便在收到推送通知时告诉 lib。 AppDelegate 有这个方法didRegisterForRemoteNotificationsWithDeviceToken,如果我能在调用该方法时收到通知,那将是完美的。我认为NSNotificationCenter 必须是解决方案,但是没有这样的通知可以通过将观察者添加到NSNotificaitonCenter 来接收,当收到推送通知时会触发。还是我错了?

但是,有一种解决方案,而不是我必须承认的最干净的解决方案,可以接收用户设置的AppDelegate,将其保存到属性并创建新的AppDelegate,这会将所有内容路由到先前设置的AppDelegate . (在dealloc 上,应该更新属性)但是,这意味着只有一个库可以做到这一点,所以我认为这不是做到这一点的方法。这是它的代码:

{
    ....
    self.applicationDelegate = [UIApplication sharedApplication].delegate;
    [UIApplication sharedApplication].delegate = self;
}

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    return [self.applicationDelegate application:application didFinishLaunchingWithOptions:launchOptions];
}

【问题讨论】:

    标签: ios objective-c notifications


    【解决方案1】:

    我认为您需要库中的子类UIResponder <UIApplicationDelegate>,在其中实现didRegisterForRemoteNotificationsWithDeviceToken。 并让你的图书馆的用户继承你的 appdelegate 类。

    【讨论】:

    • 我不知道这是否可行,但我喜欢这个想法并想尝试一下。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-19
    • 2020-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多