我正在编写一个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);
});
})
我试图在这方面寻找资源,但似乎有限。有谁知道这样做吗?
编辑(为了更清楚地说明用例):
在应用的设置页面中,当添加带有“我的公司”标签的新帖子时,用户可以设置推送通知的声音设置(default
或none
)所以:
我的实现方式是对该company
节点执行数据库触发。当有一个新帖子添加到该company
节点时,它将向所有订阅该companyID
的人发送推式通知。
但是,对于将companyID
订阅为主题的每个人,在推送此通知时都希望听到声音,而其他人则可能希望保持沉默。这样,有没有一种方法可以根据用户的喜好改变声音参数?
答案 0 :(得分:0)
sound
参数的值应为应用程序中包含的声音文件的名称。有关有效负载参数的更多详细信息,请参见official documentation:
设备收到通知时播放的声音。
声音文件可以位于客户端应用程序的主捆绑包中,也可以位于应用程序数据容器的Library / Sounds文件夹中。有关更多信息,请参见iOS Developer Library。
“ 不同的人将具有不同的声音设置,是否可以将推送通知设置发送到主题,但是根据用户的不同声音设置。”
我不确定我是否能正确理解您的用例,但是如果您希望声音根据所发出消息的主题而有所不同,则必须从客户端应用程序方面进行处理-确定消息实际来自哪个主题。