Класс FMPPush предназначен для работы с push-уведомлениями.
class FMPPush
Свойство | Описание |
service |
Сервис push-уведомлений. var service: FMPPush.Service { get } |
token |
Текущий токен устройства.
var token: String { get } |
Метод | Описание |
tokens(completion:) |
Получение списка токенов устройств для текущего пользователя.
func tokens(completion: @escaping (TokensResult) -> Void) Параметры:
|
topics(completion:) | Получение списка тем сообщений, доступных текущему пользователю.
func topics(completion: @escaping (TopicsResult) -> Void) Параметры:
|
addToken(completion:) | Добавление текущего токена устройства в список доступных пользователю
токенов на сервере.
func addToken(completion: @escaping (AddTokenResult) -> Void) Параметры:
|
removeToken(completion:) | Удаление текущего токена устройства из списка доступных пользователю
токенов на сервере.
func removeToken(completion: @escaping (RemoveTokenResult) -> Void) Параметры:
|
subscribe(to:completion:) | Подписка на сообщения указанных тем.
func subscribe(to topics: [String], completion: @escaping (SubscribeResult) -> Void) Параметры:
|
unsubscribe(from:completion:) | Отписка от сообщений указанных тем.
func unsubscribe(from topics: [String], completion: @escaping (UnsubscribeResult) -> Void) Параметры:
|
send(_:completion:) | Отправка push-уведомления. Уведомление отправляется конкретному
пользователю, если в свойстве recipient структуры Message
указано значение user. Если же указано значение topic, push-уведомление
будет отправлено всем подписчикам указанной темы сообщений.
func send(_ message: Message, completion: @escaping (SendResult) -> Void) Параметры:
|
copy() | Получение экземпляра класса-строителя для копирования FMPPush.
Возвращает экземпляр класса-строителя FMPPush.Builder.
func copy() -> FMPPush.Builder |
Получение списка токенов устройств:
// Построим экземпляр класса FMPPush
let push: FMPPush = fmp.push.build()
// Получим список токенов
push.tokens { (result) in
switch result {
case .success(let tokens):
// Выведем идентификаторы токенов
print(tokens.map {$0.token})
case .failure(let error):
// Выведем код и описание ошибки
print((error as? FMPError)?.code, (error as? FMPError)?.description)
}
}
Получение списка тем сообщений:
// Построим экземпляр класса FMPPush
let push: FMPPush = fmp.push.build()
// Получим список тем сообщений
push.topics { (result) in
switch result {
case .success(let topics):
// Выведем названия тем
print(topics.map {$0.name})
case .failure(let error):
// Выведем код и описание ошибки
print((error as? FMPError)?.code, (error as? FMPError)?.description)
}
}
Добавление/удаление текущего токена устройства на сервере:
// Построим экземпляр класса FMPPush
let push: FMPPush = fmp.push.build()
// Добавим токен устройства на сервер
push.addToken { (result) in
switch result {
case .success(_):
// Успешное добавление токена
case .failure(let error):
// Выведем код и описание ошибки
print((error as? FMPError)?.code, (error as? FMPError)?.description)
}
}
// Удалим токен устройства с сервера
push.removeToken { (result) in
switch result {
case .success(_):
// Успешное удаление токена
case .failure(let error):
// Выведем код и описание ошибки
print((error as? FMPError)?.code, (error as? FMPError)?.description)
}
}
Подписка/отписка на темы сообщений:
// Построим экземпляр класса FMPPush
let push: FMPPush = fmp.push.build()
// Подпишемся на несколько тем сообщений
push.subscribe(to: ["topic1","topic2"]) { (result) in
switch result {
case .success(_):
// Успешная подписка
case .failure(let error):
// Выведем код и описание ошибки
print((error as? FMPError)?.code, (error as? FMPError)?.description)
}
}
// Отпишемся от нескольких тем сообщений
push.unsubscribe(from: ["topic1","topic2"]) { (result) in
switch result {
case .success(_):
// Успешная отмена подписки
case .failure(let error):
// Выведем код и описание ошибки
print((error as? FMPError)?.code, (error as? FMPError)?.description)
}
}
Отправка push-уведомлений с устройства:
// Построим экземпляр класса FMPPush
let push: FMPPush = fmp.push.build()
// Сформируем push-уведомление пользователю
let message: Data = "{\"title\": \"Title\"}".data(using: .utf8)!
let userMessage = FMPPush.Message(template: "template", recipient: .user("login"), message: message)
// Отправим push-уведомление пользователю
push.send(userMessage) { (result) in
switch result {
case .success(_):
// Успешная отправка уведомления на сервер мобильной платформы для отправки пользователю
case .failure(let error):
// Выведем код и описание ошибки
print((error as? FMPError)?.code, (error as? FMPError)?.description)
}
}
// Сформируем push-уведомление пользователям, которые подписаны на указанную тему сообщений
let message: Data = "{\"title\": \"Title\"}".data(using: .utf8)!
let topicMessage = FMPPush.Message(template: "template", recipient: .topic("topic"), message: message)
// Отправим push-уведомление подписчикам
push.send(topicMessage) { (result) in
switch result {
case .success(_):
// Успешная отправка уведомления на сервер мобильной платформы для отправки подписчикам
case .failure(let error):
// Выведем код и описание ошибки
print((error as? FMPError)?.code, (error as? FMPError)?.description)
}
}
Копирование экземпляра класса FMPPush:
// Построим экземпляр класса FMPPush
let push: FMPPush = fmp.push.build()
// Скопируем экземпляр класса FMPPush
let pushCopy: FMPPush = push.copy().build()
См. также: