Пользовательские сообщения Firebase iOS

Я имею в виду часть интерпретации сообщений в https://firebase.google.com/docs/cloud-messaging/ios/receive.

Где в моем коде я могу изменить текст уведомлений в Firebase?

Пожалуйста, сначала взгляните на stackoverflow.com/help/how-to-ask, а затем предоставьте более подробную информацию и код, которые показывают, что вы уже пробовали.

Kush 15.05.2018 19:00
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
1
267
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Чтобы отправить push-уведомление на устройство, у вас должен быть сценарий (или фрагмент кода), идеально размещенный на сервере, который будет отправлять push-уведомление от вашего имени. Там вы можете настроить сообщение и даже проиграть звук при получении уведомления. Вот фрагмент кода в java, который можно использовать для отправки push-уведомления на устройство (или группу устройств).

private Map sendPush(String to, String from, String title, String message,
            String sound) throws IOException {
    sound = (sound != null) ? sound : "default";  // set default audio file name
    // Creating the URL and connection
    URL url = new URL(FCM_URL); // your firebase URL
    HttpURLConnection conn = (HttpURLConnection) url.openConnection();
    conn.setDoOutput(true);
    conn.setRequestMethod("POST");
    conn.setRequestProperty("Content-Type", "application/json");
    conn.setRequestProperty("Authorization", "key = " + FCM_KEY); // the firebase project key 

    conn.setDoOutput(true);

    // set the notification body
    Map<String, String> notificationBody = new HashMap();
    notificationBody.put("title", title); // notification title
    notificationBody.put("body", message); // notification message
    notificationBody.put("sound", sound);
    notificationBody.put("badge", "1");

    Map<String, String> dataBody = new HashMap();
    dataBody.put("sender", from); // sender id

    Map<String, Object> pushBody = new HashMap();
    pushBody.put("notification", notificationBody);
    pushBody.put("data", dataBody);
    pushBody.put("to", to); // receiver(s) id
    pushBody.put("priority", "high");

    // convert your dictionary to json string using Google Gson library (similar to JsonSerialization class in swift)
    String input = new Gson().toJson(pushBody);

    // write input bytes in request body
    try (OutputStream os = conn.getOutputStream()) {
        os.write(input.getBytes());
        os.flush();
    }

    StringBuilder responseString;
    Reader reader = new InputStreamReader(conn.getInputStream()); // send request and receive response 

    // parse response
    try (BufferedReader in = new BufferedReader(reader)) {
        String inputLine;
        responseString = new StringBuilder();
        while ((inputLine = in.readLine()) != null) {
            responseString.append(inputLine);
        }
    }

    // using Google Gson to convert json string into Map (similar to JsonSerialization class in swift)
    Map<String, Object> responseObject = new Gson().fromJson(responseString.toString(),
                Map.class);

    return responseObject;
}

Поскольку это код Java, я разместил его в приложении Java, развернутом на сервере Apache Tomcat.

Вы можете найти несколько похожих реализаций на разных языках, таких как php, node.js и т. д.

Надеюсь это поможет

Это то, что я ищу! Знаете ли вы, что мне нужно сделать, чтобы поместить это в Swift?

TechKnight25 24.05.2018 19:02

AFAIK вы не можете отправить push прямо из своего приложения. Вы можете отправить запрос http на серверный API, который отправит запрос от вашего имени. или вы можете изучить Google Cloud Functions. firebase.google.com/docs/functions

S1LENT WARRIOR 24.05.2018 21:34

сначала создайте сертификат p.12 и загрузите его в firebase -> настройки проекта -> вкладка облачных сообщений -> выберите свое приложение iOS -> добавьте сертификат APNS.

A. Создайте файл CSR (.certSigningRequest)

Открытый доступ к связке ключей из утилит На панели инструментов «Связка ключей» выберите «Связка ключей» -> «Настройки». Во всплывающем окне выберите вкладку Сертификаты. Установите для «Протокол состояния онлайн-сертификатов» и «Список отозванных сертификатов» значение «Выкл.». Закрыть это окно Теперь на панели инструментов откройте «Связка ключей»> «Помощник по сертификации»> «Запросить сертификат в центре сертификации». Введите адрес электронной почты и обычное имя, которые вы использовали для регистрации в программе для разработчиков iOS. Оставьте поле CA Email пустым и выберите «Сохранено на диск» и «Я могу указать информацию о паре ключей». Нажмите "Продолжить". Выберите имя файла и место на жестком диске Нажмите кнопку "Сохранить". В следующем окне установите для параметра «Размер ключа» значение «2048 бит». Установите «Алгоритм» на «RSA». Нажмите "Продолжить". Это создаст и сохранит ваш файл certSigningRequest (CSR) на вашем жестком диске. Открытый и закрытый ключи также будут созданы в Keychain Access с введенным общим именем.

Б. Создайте файл ".cer" в учетной записи разработчика iOS.

Войдите в учетную запись разработчика Apple Нажмите «Сертификаты, идентификаторы и профили». Нажмите «Provisioning Profiles». В разделе «Сертификаты» нажмите «Производство». Нажмите кнопку «Добавить» (+) в правом верхнем углу главной панели. Теперь выберите «App Store and Ad Hoc». Нажмите "Продолжить". Нажмите "Выбрать файл" и найдите файл CSR, который вы создали на жестком диске. Нажмите "Создать". Нажмите "Скачать", чтобы получить файл. C. Установите .cer и сгенерируйте сертификат .p12

Найдите загруженный файл .cer и дважды щелкните В раскрывающемся меню «Вход» выберите «Вход» и нажмите «Добавить». Откройте KeyChain Access, и вы найдете профиль, созданный на шаге A. Вы можете развернуть профиль «закрытый ключ» (показывает добавленный вами сертификат) Выберите только эти два элемента (не открытый ключ) Щелкните правой кнопкой мыши и выберите «Экспорт 2 элементов…» во всплывающем окне. Теперь убедитесь, что формат файла - «.p12», и выберите имя файла и место назначения на жестком диске. Щелкните Сохранить. Теперь вам будет предложено установить пароль, но оставьте оба поля пустыми. Щелкните ОК. Теперь у вас есть файл .p12 на жестком диске.

и откройте свой проект Xcode и выберите цель-> возможности-> pusnotification-> on

дальше сделай это https://firebase.google.com/docs/cloud-messaging/ios/receive

следующее push-сообщение из облачной консоли обмена сообщениями firebase с сообщением и заголовком и выберите цель вашего приложения-> сегмент пользователя-> ваше приложение.

тогда ваше приложение сможет

Другие вопросы по теме