我正在尝试将声音添加到本地推送通知中。 我正在使用RN 0.45.1和 react-native-push-notifications 3.0.0
我设法使用默认声音在iOS和Android中安排通知。 我无法添加自定义声音。
我有mp3类型的声音文件。 我尝试了以下方法:
而不是:
import notificationSound from '../src/assests/sounds/sound.mps';
PushNotification.localNotificationSchedule({
message: 'Test message',
date: new Date(Date.now() + (60 * 1000)),
repeatType: 'time',
repeatTime: 60 * 1000,
sound: notificationSound,
});
并且通知是:
PushNotification.localNotificationSchedule({
message: 'Test message',
date: new Date(Date.now() + (60 * 1000)),
repeatType: 'time',
repeatTime: 60 * 1000,
sound: sound.mp3,
});
答案 0 :(得分:6)
有声音属性
soundName: 'default',
显示通知时播放的声音。 值为'默认'播放默认声音。 它可以设置为自定义声音,如android.resource://com.xyz/raw/my_sound'。它将寻找' my_sound'音频文件在res / raw'目录并播放它。默认值:'默认' (播放默认声音)
自定义声音
在android中,将自定义声音文件添加到[project_root] / android / app / src / main / res / raw
在iOS中,将自定义声音文件添加到xCode中的项目资源。
在位置通知中,json指定完整的文件名:
soundName:' my_sound.mp3'
答案 1 :(得分:0)
检查 scheduleNotif(soundName)
文档中以下 example 中的 react-native-push-notification
函数。前面的示例在我的 Android 设备上对我有用。只需添加声音文件的名称而不写其格式“success”,而不是“success.mp3”。声音文件应位于raw
文件夹[project_root]/android/app/src/main/res/raw
我针对我的应用需求修改的方法:
var lastId = 0;
function scheduleNotif(soundName, date, title, message) {
lastId++;
PushNotification.localNotificationSchedule({
date: new Date(date),
title: title,
message: message,
color: 'blue',
invokeApp: false,
when: null,
usesChronometer: false,
timeoutAfter: null,
category: '', // (optional) default: empty string
id: lastId,
userInfo: { sceen: 'home' },
playSound: !!soundName, //<-----
soundName: soundName ? soundName : 'default', //<-----
number: 10,
});
}
答案 2 :(得分:0)
请使用这个payload,在此之前,需要创建一个频道。它适用于应用程序被杀死状态和关闭状态。
{ “通知”:{ "title": "测试通知", "body": "测试通知", "android_channel_id": "channelID" }, “数据”:{ "property1":"value1", “财产 2”:42 } }