作者:观海望天 | 来源:互联网 | 2023-02-12 19:12
1> chris p baco..:
Firebase 在传递消息时requireInteraction
从notification
有效负载中剥离属性.有效的解决方法是使用data
属性而不是notification
.然后,您可以根据需要使用该setBackgroundMessageHandler()
方法构建通知:
messaging.setBackgroundMessageHandler(function (payload) {
return self.registration.showNotification(payload.data.title,
Object.assign({data: payload.data}, payload.data));
});
我已经设置了data
上面,因为click_action
不再使用这种方法,你需要自己注册所需的onclick处理程序.这是一个工作服务工作者,它完全按照您的意图执行notification
,但使用数据属性:
// import scripts omitted
const messaging = firebase.messaging();
// [END initialize_firebase_in_sw]
self.addEventListener('notificationclick', e => {
let found = false;
let f = clients.matchAll({
includeUncontrolled: true,
type: 'window'
})
.then(function (clientList) {
for (let i = 0; i
这将是你的卷曲电话:
curl -X POST -H "Authorization: key=yourKey-" -H "Content-Type: application/json" -d '{
"data": {
"title": "fooTitle",
"body": "foo",
"icon": "image.jpg",
"click_action": "http://localhost:8000",
"requireInteraction": true
},
"registration_ids": ["id1", "id2"]
}' "https://fcm.googleapis.com/fcm/send"
我想你需要决定一个.如果我没记错的话,通知优先,只有在没有通知有效负载的情况下才会使用数据.