gpt4 book ai didi

ios - 通过声音和振动推送通知

转载 作者:行者123 更新时间:2023-12-01 16:11:27 25 4
gpt4 key购买 nike

我正在尝试向用户接收消息时向用户发送推送通知,该通知成功显示了横幅,但是它是静音且不会振动。
我使用Atom作为服务器发送通知,代码看起来像这样,

exports.observeMessages = functions.database.ref('/messages/{messageId}').onCreate((snapshot, context) => {

const fromId = snapshot.val().fromId;
const toId = snapshot.val().toId;

console.log('LOGGER --- fromId is ' + fromId);
console.log('LOGGER --- toId is ' + toId)

var message = snapshot.val();

return admin.database().ref('/users/' + toId).once('value', snapshot => {

var userWhoRecieved = snapshot.val();

return admin.database().ref('/users/' + fromId).once('value', snapshot => {
var userThatSent = snapshot.val();

var payload = {
notification: {
title: userThatSent.name + ' sent you a message',
body: message.text

},
sound: 'default'
};

admin.messaging().sendToDevice(userWhoRecieved.fcmToken, payload)
.then(function(response) {
console.log(response.results[0].error);
console.log('Succesfully sent message:', response);

})
.catch(function(error) {
console.log(response.results[0].error);
console.log('Error sending message', error);
});
})
})
})
以下是我尝试获取通知以发送默认声音和振动的方式。
  var payload = {
notification: {
title: userThatSent.name + ' sent you a message',
body: message.text

},
sound: 'default'
};
当我使用上面的代码发送消息时,我的Firebase函数日志中看到以下错误
image
我尝试了其他一些方法,但是这些方法甚至都不会通过终端推送。实现此方法的正确方法是什么?
the issue with sound inside notification object 

var payload = {
notification: {
title: userThatSent.name + ' sent you a message',
body: message.text
sound: 'default'
},
};
上面的代码行是我如何得到下面的错误。
/Users/wilcox.323/Downloads/OddJobs-master/functions/index.js:219
sound: 'default'
^^^^^

SyntaxError: Unexpected identifier
at wrapSafe (internal/modules/cjs/loader.js:1116:16)
at Module._compile (internal/modules/cjs/loader.js:1164:27)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1220:10)
at Module.load (internal/modules/cjs/loader.js:1049:32)
at Function.Module._load (internal/modules/cjs/loader.js:937:14)
at Module.require (internal/modules/cjs/loader.js:1089:19)
at require (internal/modules/cjs/helpers.js:73:18)
at /usr/local/lib/node_modules/firebase-tools/lib/triggerParser.js:15:15
at Object.<anonymous> (/usr/local/lib/node_modules/firebase-tools/lib/triggerParser.js:53:3)
at Module._compile (internal/modules/cjs/loader.js:1200:30)
ODEE236182:OddJobs-master wilcox.323$

最佳答案

是否振动取决于用户设置。您的应用程序无法取代用户在其设备设置中设置的值。
您检查过设备设置了吗?
另外,请查看以下问题:
Push notifications don't vibrate and are silent
如您所见,通过以正确的格式发送文件名,用户可以正常工作。您是否有可能在有效载荷中错误地指定了声音?
这是错误:

var payload = {
notification: {
title: userThatSent.name + ' sent you a message',
body: message.text

},
sound: 'default'
};
声音应位于通知对象内。
另请: https://firebase.google.com/docs/reference/admin/node/admin.messaging.NotificationMessagePayload
您可能会收到错误,因为您将声音键放在了通知对象之外。如果您希望它工作,则您的有效负载应采用文档中所述的格式。
编辑:
在更新的代码中,您忽略了用逗号分隔声音键值对。将您的代码更新为此:
var payload = {
notification: {
title: userThatSent.name + ' sent you a message',
body: message.text,
sound: 'default'
},
};

关于ios - 通过声音和振动推送通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63368934/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com