【问题标题】:content-available push notification not calling delegate when not debugging内容可用推送通知在不调试时不调用委托
【发布时间】:2019-02-08 20:14:18
【问题描述】:

我们的服务器发送内容可用的推送通知。推送通知允许 UIBackgroundMode。无论应用程序是在前台还是在后台(按下主页按钮),一切都在调试模式下运行良好。在这两种情况下都会调用委托 didReceiveRemoteNotification。

但是,如果应用程序没有连接到调试器并且在后台,则永远不会调用它。当我按下任何通知时,它会被调用,这不会给我任何时间提前下载内容,因为它应该做的。 会不会是我们使用的是开发证书而不是生产证书?还有什么其他原因会导致这样的事情发生? (如果您希望我提供任何 sn-p 来查找问题,请告诉我)

感谢任何帮助

【问题讨论】:

  • 如果您终止应用(双击主页按钮,向上滑动应用),iOS 将停止发送后台通知。
  • 当您的应用程序未连接到调试器或在后台时,您是否收到通知?
  • 是的,我正在接收通知并且应用程序在后台并且没有被杀死。

标签: ios objective-c push-notification


【解决方案1】:

** 转到功能并打开后台模式,然后选择后台获取,远程通知选项。 如果您使用的是 ios 8,请使用**

-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler

方法代替

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

【讨论】:

  • 虽然我已经在使用这个方法并且后台模式已启用
【解决方案2】:
  • 你是否添加了这些寄存器支持行

  • (BOOL)应用程序:(UIApplication *)应用程序 didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // 向 APNS 注册设备并指定支持哪些通知类型: [[UIApplication sharedApplication] registerForRemoteNotificationTypes: (UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert)];

    返回是; }

// registerForRemoteNotificationTypes 方法完成时调用: - (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken { } - 现在生成您的推送通知证书,如 .p12,如果您想从客户端(无服务器)检查,然后使用 Pusher 应用程序生成通知。如果您的证书有效,那么您会收到通知。 - 要生成通知证书,请点击http://www.raywenderlich.com/32960/apple-push-notification-services-in-ios-6-tutorial-part-1 链接。

【讨论】:

    【解决方案3】:

    我也遇到了同样的问题,每个方法在调试模式下都可以正常工作,但在不调试时无法运行。 您需要在以下方法中删除对UIApplication.State.background 的检查(如果有)。

    func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) {

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-05-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多