Firebase Cloud Messaging (FCM) – это мощная платформа для отправки push-уведомлений на мобильные устройства, включая iOS. В некоторых случаях вам может потребоваться отправлять push-уведомления на устройства iOS без воспроизведения звука. В этой статье мы рассмотрим различные методы, которые можно использовать для реализации push-уведомлений Firebase без звука на iOS. Мы предоставим примеры кода, которые помогут вам освоить каждый метод.
Метод 1: отправка автоматических уведомлений с помощью консоли Firebase
Консоль Firebase предоставляет удобный интерфейс для отправки push-уведомлений. Чтобы отправить автоматическое уведомление, выполните следующие действия:
- Перейдите в консоль Firebase (console.firebase.google.com).
- Выберите свой проект и перейдите к «Cloud Messaging» в разделе «Разработка».
- Нажмите кнопку «Новое уведомление».
- В композиторе уведомлений оставьте поле «Звук» пустым.
- Введите токен целевого устройства и любые дополнительные данные, которые вы хотите включить.
- Нажмите «Отправить», чтобы доставить автоматическое уведомление на устройства iOS.
Метод 2. Отправка автоматических уведомлений с помощью Firebase Admin SDK
Если вы предпочитаете программный подход, вы можете использовать Firebase Admin SDK для отправки автоматических уведомлений. Вот пример использования Node.js:
const admin = require('firebase-admin');
const serviceAccount = require('path/to/serviceAccountKey.json');
admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
});
const message = {
data: {
// Add any additional data you want to include
},
apns: {
headers: {
'apns-push-type': 'background',
'apns-priority': '5',
},
payload: {
aps: {
contentAvailable: true,
},
},
},
token: 'DEVICE_TOKEN',
};
admin.messaging().send(message)
.then((response) => {
console.log('Successfully sent silent notification:', response);
})
.catch((error) => {
console.error('Error sending silent notification:', error);
});
Метод 3: обработка автоматических уведомлений в приложении iOS
Чтобы обрабатывать автоматические уведомления в вашем приложении iOS, вам необходимо реализовать соответствующие методы в классе делегата вашего приложения. Вот пример в Swift:
import UIKit
import FirebaseMessaging
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate, MessagingDelegate {
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Initialize Firebase
FirebaseApp.configure()
// Register for remote notifications
UNUserNotificationCenter.current().delegate = self
let authOptions: UNAuthorizationOptions = [.alert, .badge, .sound]
UNUserNotificationCenter.current().requestAuthorization(options: authOptions) { (_, _) in }
application.registerForRemoteNotifications()
// Set Firebase Messaging delegate
Messaging.messaging().delegate = self
return true
}
func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable: Any], fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
// Handle silent notification
if let silent = userInfo["aps"] as? [String: Any], silent["content-available"] as? Int == 1 {
// Perform necessary background tasks
completionHandler(.newData)
}
// Handle other notifications
// ...
}
// Other methods...
}
В этой статье мы рассмотрели три метода реализации push-уведомлений Firebase без звука на iOS. Первый метод заключался в отправке тихих уведомлений с помощью консоли Firebase. Второй метод использовал Firebase Admin SDK, позволяющий программно управлять беззвучными уведомлениями. Наконец, мы обсудили, как обрабатывать автоматические уведомления в классе делегата вашего приложения iOS. Используя эти методы, вы можете доставлять push-уведомления без звука на устройства iOS, обеспечивая удобство работы с пользователем.