接收推送通知时,firebase消息传递不会唤醒iOS设备



我正在使用FCM将推送Notifs发送到单个iOS设备,并在HTTP请求上触发的firebase云功能触发。在遵循FCM和APNS文档之后,当应用在后台运行时,所有内容都名义上运行。在所有情况下,我都会成功收到通知。

唯一的问题:按下Notifs不会从睡觉的锁定屏幕上照亮我的锁定屏幕。我仍然会收到按下Notif,当我按下主按钮手动唤醒设备时,可以看到它。但是 notif本身不会唤醒我的设备。

如何复制

  1. 打开应用
  2. 按Home Button(现在应用程序现在在后台(
  3. 锁电话
  4. 发送推送notif
  5. 已收到Notif,但不会点亮锁定屏幕。

我已经打开了"背景模式"功能>选择"远程通知"one_answers"背景获取"。我的部署目标是10.0。我的应用程序允许锁定屏幕通知。

(类似问题的大多数答案是"打开背景模式"或"设置为1的设置",我两者都做到了。(

我的云功能将有效载荷发送到APN:

exports.pushMatchNotif = functions.https.onRequest((req, res) => {
  let receiverToken = req.receiverToken
  var msg = {
  'apns': {
    'header': {
      'apns-priority': '10'
    },
    'payload': {
      'aps': {
        'alert': {
          'title': 'Hi',
          'body': 'Hello',
        },
        'badge': 2,
        'sound': 'default'
        'content-available': 1
      }
    }
  },
  'token': receiverToken
};

  admin.messaging().send(msg)
  .then((response) => {
    // Response is a message ID string.
    console.log('Successfully sent message:', response);
    let json = {"Response": response}
    res.send(json)
  })
  .catch((error) => {
    console.log('Error sending message:', error);
    let json = {"Error": error}
    res.send(json)
  });
})

我的didfinishlaunchingwithoptions方法:

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
    FirebaseApp.configure()
    Messaging.messaging().delegate = self
    UNUserNotificationCenter.current().delegate = self
    let center = UNUserNotificationCenter.current()
    center.requestAuthorization(options: [.alert, .badge , .sound]) {
        (granted, error) in
        print("granted is (granted)")
    }
    application.registerForRemoteNotifications()
    return true
}

我的didreceiveregistrationToken方法(FCM委托法(:

 func messaging(_ messaging: Messaging, didReceiveRegistrationToken fcmToken: String) {
        print("Firebase deviced token: (fcmToken)")
    }

我的DidReceivereMoteNotification方法:

    func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any], fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
    // Print message ID.
    if let messageID = userInfo[gcmMessageIDKey] {
        print("Message ID: (messageID)")
    }
    // Print full message.
    print(userInfo)
}

我缺少什么?

我也有同样的问题。事实证明,我启用了"不要打扰"模式。禁用它解决了。

我也遇到了这个问题。就我而言,这是因为我的Apple Watch。打开手表将意味着通知不会唤醒电话屏幕。还可以预期通知不会唤醒手表,而只是听起来有声音。

相关内容

  • 没有找到相关文章

最新更新