我正在编写一个iOS应用程序,允许人们为订阅特定主题的特定推送通知设置声音设置(默认声音或无声音) .
不同的人将有不同的声音设置,有没有办法将推送通知设置发送到主题,但具有不同的声音设置取决于用户 .
我有以下实现:
exports.pushNotifications = functions.database.ref('/companies/{companyID}/posts').onWrite((snap, context) => {
const companyID = context.params.companyID
const message = {
"condition": `'allCompanies' in topics || '${companyID}' in topics`,
"apns": {
"headers": {
"apns-priority": "5"
},
"payload": {
"aps": {
"alert": {
"body": "New gossips"
},
"sound": "default", //Any ways to vary this?
"badge": 1
}
}
}
};
return admin.messaging().send(message)
.then((response) => {
return console.log('PNForAllCompanies Successful: ', response);
})
.catch((error) => {
return console.log('PNForAllCompanies Error: ', error);
});
})
我试图在这个领域寻找资源,但似乎有限 . 有没有人有任何想法这样做?
编辑(为了更清楚地描述用例):
在应用程序的设置页面中,当添加带有标签"My Company"的新帖子时,用户可以设置推送通知的声音设置( default
或 none
),如下所示:
我如何实现这个是为该 company
节点做一个数据库触发器 . 当有一个新帖子添加到该 company
节点时,它会向已经订阅该 companyID
作为主题的每个人发送推送通知 .
但是,对于已经订阅了 companyID
作为主题的每个人,可能希望在推送此通知时发出声音而其他人可能不想要保持沉默 . 有了这个,有没有办法根据用户的偏好改变声音参数?
1 回答
sound
参数的值应该是应用程序中包含的声音文件的名称 . 有关payload参数的更多详细信息,请参阅official documentation:“不同的人会有不同的声音设置,有没有办法将推送通知设置发送到主题,但根据用户的不同声音设置 . ”
我不确定我是否理解你的用例,但是如果你希望声音根据主题的不同而有所不同,你必须从客户端应用程序端处理 - 确定哪个主题它实际上来自的消息 .