#ios #react-native #push-notification #react-native-push-notification
Вопрос:
Я использую пакет npm react-native-push-уведомления. Я устанавливаю путь к пользовательскому звуку при создании канала уведомлений, как показано ниже:
PushNotification.createChannel(
{
channelId: 1, // (required)
channelName: 'My Channel', // (required)
channelDescription: 'A channel to categorise your notifications', // (optional) default: undefined.
soundName: 'tone1',
playSound: true,
importance: 4,
vibrate: true,
},
(created) => console.log(`createChannel returned '${created}'`),
);
Для ios я добавляю звук в корневую папку проекта в XCode следующим образом:
Но это не работает, и звук по умолчанию все еще воспроизводится. На Android пользовательский звук работает правильно. Я даже импортировал звуковой файл и воспроизвел его вручную, чтобы убедиться, что он работает правильно:
import SoundPlayer from 'react-native-sound-player';
SoundPlayer.playSoundFile('tone1', 'mp3');
Я даже использовал расширение .mp3 в переменной soundName, но оно все равно не работает.
Версия библиотеки: 7.3.2
Ответ №1:
Мне удалось заставить его работать. Оказывается, я не добавлял звуковой файл в нужную папку. Мы должны добавить его в каталог ios/ (на том же уровне, что и папка Pods).
Кроме того, мне также пришлось передать переменную soundName, когда мы планируем локальное уведомление. Ранее я передавал переменную только при создании канала.
PushNotification.localNotificationSchedule({
title: 'Hello',
message: 'Check Notification' new Date(Date.now() 1 * 1000),
date: new Date(Date.now() 1 * 1000), // in 1 secs
allowWhileIdle: false, // (optional) set notification to work while on doze, default: false
channelId: 'checkNotification',
soundName: 'tone5.mp3', // (optional) Sound to play
});