我试图添加自定义声音推送通知使用离子6和Angular 。
在下面的代码中,我获取设备令牌并存储在firebase DB中。
if (isPushNotificationsAvailable) {
PushNotifications.requestPermissions().then(result => {
if (result.receive === 'granted') {
PushNotifications.register();
}
});
PushNotifications.addListener('registration', (token: Token) => {
this.token = token.value;
const tokenRef = ref(db, `deviceToken/${this.token}`);
set(tokenRef, this.token);
});
PushNotifications.addListener('pushNotificationReceived', (notification: PushNotificationSchema) => {
// this.router.navigateByUrl('/new-bookings')
});
}
我已经创建了一个云函数来触发通知下面的代码,
app.post('/sendNotification', function (req, res) {
let deviceTokens = [];
admin.database().ref('deviceToken').on("value", snap => {
let data = snap.val();
if (data) {
Object.keys(data).forEach(key => {
if (data[key]) {
deviceTokens.push(data[key]);
}
});
console.log(deviceTokens);
let notification = {
"registration_ids": deviceTokens,
"collapse_key": "type_a",
"notification": {
"body": req.body.desc,
"title": req.body.title,
// "icon": 'https://images.ctfassets.net/509kpi6dw56l/1CD2g1XQpaJjEzSh2xFnOp/8cb418adda4fd4caad135ebb2056f72a/icon1.png',
// "sound": 'https://assets.ctfassets.net/509kpi6dw56l/7aYHya51vKNWFgPmm63RfG/772d1b53496f76eec97252b0d9511e11/Alert.mp3'
}
};
const options = {
method: 'POST',
uri: 'https://fcm.googleapis.com/fcm/send',
body: notification,
json: true,
headers: {
'Content-Type': 'application/json',
'Authorization': 'Key'
}
}
request(options).then(function (response) {
res.status(200).json(response);
})
.catch(function (err) {
console.log(err);
})
}
})
});`
我得到的通知,但没有自定义的声音和图标。我已经在我的AndroidManifest.xml中添加了以下链接仍然没有使用。
<meta-data android:name="com.google.firebase.messaging.default_notification_icon" android:resource="@mipmap/icon1" /> <meta-data android:name="com.google.firebase.messaging.default_notification_sound" android:resource="@raw/alert_sound" />
我已经参考了一些其他网页和尝试,但没有工作。请帮助我错过了什么。
1条答案
按热度按时间jckbn6z71#
您需要在
icon
中设置可绘制资源的路径。对于sound
,您必须将其放在 /res/raw/ 中。