这是我的情况:

该应用会收到一些通知,为了能够在我的锁定屏幕上执行操作,它们处于静音模式(aps有效负载上的content-available = 1)。

在didReceiveRemoteNotification回调中,我将其保存到核心数据(背景或前景)中。

我的问题是:

假设该应用程序已经在运行,并且我已经锁定了屏幕,那么当我点击某些通知时,不会调用任何回调。到目前为止,我无法找到处理此事件的正确回调。

我想念什么吗?

我需要保存通知列表,并且能够在到达某些通知(并点击)时转到正确的视图。
通过接收通知,保存,转到正确的视图的方式...一切正常,除了屏幕锁定时。

最佳答案

我怀疑通知到来时您的应用程序是否正在运行,因为如果应用程序处于非活动状态并且轻按了通知,则iOS将调用didReceiveRemoteNotification

但是,如果由于某种原因应用程序未运行,则不会调用didReceiveRemoteNotification函数。在这种情况下,如果用户单击通知,则会通过通知启动应用程序,并调用didFinishLaunchingWithOptions

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
    var userinfo : NSDictionary = launchOptions[UIApplicationLaunchOptionsRemoteNotificationKey];
    print(launchOptions);
    return true
}


请在您的didFinishLaunchingWithOptions函数中检查一次。

10-08 15:44