Как отправлять push-уведомления с узлом и конденсатором

У меня есть приложение Angular с Capacitor (без Ionic), и мне нужно отправлять push-уведомления пользовательскому приложению из бэкэнда Node.js. Как бы я это сделал? Любая статья, источник или пример были бы очень ценными?

Вот capacitor.config.ts файл

import { CapacitorConfig } from '@capacitor/cli';

const config: CapacitorConfig = {
  appId: 'xxx.xxxxxxx.xxx',
  appName: 'ABC',
  webDir: 'dist/abc',
  bundledWebRuntime: false,
  plugins: {
    PushNotifications: {
      presentationOptions: ["badge", "sound", "alert"],
    },
  },
};

export default config;

Я видел много статей и т. д. о push-уведомлениях с Capacitor и Firebase, но не смог найти ни одного источника по моему требованию.


person WasiF    schedule 24.06.2021    source источник


Ответы (1)


Лучшее и простое решение на данный момент — это реализовать его с помощью firebase. Вся эта установка состоит в основном из двух частей.

  • Настройте Capacitor и Firebase, чтобы они могли получать уведомления.

Для этого я предлагаю вам следовать этому руководству слово за словом.

  • Код реализации nodejs для отправки push-уведомлений с сервера

Для этого следуйте официальной документации Firebase.

В качестве справки, вот как вы можете обрабатывать часть nodejs, это успешно запускает push-уведомления.

const admin = require("firebase-admin");

admin.initializeApp({
    credential: admin.credential.applicationDefault(),
    databaseURL: <Your-Firebase-DB-URL>
});

async function sendNotification(tokens, title, body, data = {}) {
    message = {
        notification: {
            title: title,
            body: body,
        },
        data: data
    }
    options = {
        priority: 'high'
    }
    result = await admin.messaging().sendToDevice(tokens, message, options)
    return result;
}

module.exports = { sendNotification };
person Chetan Bansal    schedule 24.06.2021
comment
Спасибо за это, но не могли бы вы указать какой-либо источник, который напрямую связан с node.js, а не с Firebase между узлом и конденсатором? - person WasiF; 25.06.2021
comment
Я не верю, что кто-то подошел к реализации этого таким образом.. Теоретически это возможно.. но сложности настройки всего этого вручную и перегрузки сервера этой дополнительной задачей - это то, что заставляет людей использовать такие сервисы, как firebase.. Ваш сервер узла должен будет общаться с APNS и Google. Для APNS обратитесь к этому levelup.gitconnected.com/, но для Android вам придется снова вернуться к FCM.. обратитесь к этому сообщению stackoverflow.com/questions/41511475/ - person Chetan Bansal; 25.06.2021