我正在使用FCM将推送Notifs发送到单个iOS设备,并在HTTP请求上触发的firebase云功能触发。在遵循FCM和APNS文档之后,当应用在后台运行时,所有内容都名义上运行。在所有情况下,我都会成功收到通知。
唯一的问题:按下Notifs不会从睡觉的锁定屏幕上照亮我的锁定屏幕。我仍然会收到按下Notif,当我按下主按钮手动唤醒设备时,可以看到它。但是 notif本身不会唤醒我的设备。
如何复制
- 打开应用
- 按Home Button(现在应用程序现在在后台(
- 锁电话
- 发送推送notif
- 已收到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。打开手表将意味着通知不会唤醒电话屏幕。还可以预期通知不会唤醒手表,而只是听起来有声音。