Push-уведомления Adobe Phonegap с Firebase Cloud на Android - PullRequest
0 голосов
/ 13 марта 2019

С 2018 года стандартный проект PhoneGap Push Notification больше не работает. Я пытаюсь найти функциональный способ отправки push-уведомлений в приложение. До сих пор я сделал следующее:

  1. Настройка примера проекта push-уведомления Adobe Phonegap
  2. Настройте учетную запись Firebase Cloud, создайте проект и добавьте Android приложение к нему.
  3. Скачал google-services.json
  4. Установил phonegap-plugin-push (1.8.0, так как, по-видимому, все, что выше 2.0 имеет проблемы), и включил мой идентификатор отправителя
  5. Установленный релиз кордова-android-support-gradle-релиз, релиз-кордова-android-play-services-gradle-релиз и релиз кордова-android-firebase-gradle-выпуск
  6. Исправлен файл index.js, чтобы идентификатор отправителя больше не отправлялся в объекте Android PushNotification.init (по-видимому, больше не требуется)
  7. Изменен index.js, чтобы pushServiceURL был включен в объект Browser PushNotification.init (очевидно, это требуется для тестирования в браузере)
  8. Настройка и публикация кампании push-сообщений в облаке Firebase для запуска при открытии приложения

Я использую Android 8.1.0. Я установил приложение Adobe Phonegap Developer

Результат: Я использую PhoneGap в CLI. В моем CLI я вижу следующее:

Updating manifest.json with push properties…
[phonegap] starting app server...
[phonegap] listening on 192.168.1.57:3000
[phonegap]
[phonegap] ctrl-c to stop the server
[phonegap]
Updating manifest.json with push properties…
Manifest updated with push sender ID
Manifest updated with push sender ID
[phonegap] 200 /socket.io/?EIO=3&transport=polling&t=MbsZP-M
[phonegap] 200 /socket.io/? 
EIO=3&transport=polling&t=MbsZSMw&sid=Wyc9htsKdIkXHCtKAAAA
[phonegap] 200 /__api__/update
[phonegap] 200 /__api__/update
[phonegap] 200 /__api__/update
[phonegap] 200 /socket.io/socket.io.js

... пока все выглядит хорошо. Я загружаю приложение Phonegap Developer на свое устройство Android и подключаюсь, и вижу:

[phonegap] [console.warn] Content Security Policy has been modified to be: 
<meta http-equiv="Content-Security-Policy" content="default-src * 'unsafe-inline' gap: ws: https://ssl.gstatic.com;style-src 'self' 'unsafe-inline' data: blob:;media-src *;img-src * 'self' data: content:;script-src * 'unsafe-inline' 'unsafe-eval' data: blob:;">
[phonegap] [console.warn] Content Security Policy has been added: <meta http-equiv="Content-Security-Policy" content="default-src * gap: ws: https://ssl.gstatic.com;img-src * 'self' data: content:;style-src 'self' 'unsafe-inline' data: blob:;script-src * 'unsafe-inline' 'unsafe-eval' data: blob:;">
[phonegap] 200 /__api__/appzip
[phonegap] 200 /socket.io/socket.io.js
[phonegap] 200 /socket.io/?EIO=3&transport=polling&t=MbsaRlk
[phonegap] 200 /socket.io/?EIO=3&transport=polling&t=MbsaRmS&sid=R8RzNxpm8Z-XkKNtAAAD
[phonegap] [console.log] Received Device Ready Event
[phonegap] [console.log] calling setup push
[phonegap] [console.log] calling push init
[phonegap] [console.log] after init
[phonegap] [console.log] Device Push ID:
[phonegap] dijoTzuKUVd:APA91dERSwx0ZeKAg2nqeOCTJnXkeuBqQQQrJgGi4c0m5I_G30IjF6IiHex8Muazj-QlNVmemqPf0dQQgvF0u5eJPMQ-VTTagpGVnQvgqZUEUSlzKnAabrw4kz0W45RnrsbJNKAbFZbh
[phonegap] [console.log] registration event: dijoTzuKUVd:APA91dERSwx0ZeKAg2nqeOCTJnXkeuBqQQQrJgGi4c0m5I_G30IjF6IiHex8Muazj-QlNVmemqPf0dQQgvF0u5eJPMQ-VTTagpGVnQvgqZUEUSlzKnAabrw4kz0W45RnrsbJNKAbFZbh

... опять все выглядит хорошо, и на экране появляется сообщение «зарегистрировано». так что все выглядит нормально, кроме сообщений не получено. И нет журнала консоли, чтобы сообщить мне о любой попытке сообщения.

Я также попытался добавить тестовое устройство, используя идентификатор экземпляра Firebase. Из моего кода я предполагаю: Поэтому я добавляю это, но Firebase говорит, что это «недопустимый формат». Затем я попробовал только код перед двоеточием ("dijoTzuKUVd"), который принял Firebase (но не знаю, верно ли это), и попытался снова отправить сообщение. Но все равно ничего.

Кто-нибудь знает, чего мне не хватает?

ДОПОЛНИТЕЛЬНО к этому, когда я запускаю приложение в любом браузере, я получаю ошибку JS:

Uncaught Error: Service Workers are not supported on your browser.
at new PushNotification (push.js:89)
at Object.init (push.js:366)
at Object.setupPush (index.js:42)
at Channel.onDeviceReady (index.js:38)
at Channel.fire (cordova.js:798)
at cordova.js:229

... так что я не могу проверить это и в браузере.

Любая помощь приветствуется.

1 Ответ

0 голосов
/ 13 марта 2019

Извините, если мой ответ кажется глупым, но сомнительным ...

Идентификатор вашего телефона не

dijoTzuKUVd

, но

dijoTzuKUVd:APA91dERSwx0ZeKAg2nqeOCTJnXkeuBqQQQrJgGi4c0m5I_G30IjF6IiHex8Muazj-QlNVmemqPf0dQgvF0u5eJPMQ-VTTagpGGVnQvgqZUEUSlzKnAabrw4kz0W45RnrsbJNKAbFZbh

И именно этому идентификатору ваша служба уведомлений должна будет отправлять уведомления через FCM.

Я не знаю, как вы отправляете уведомленияно знайте, что во время разработки этих уведомлений у меня были проблемы с неполучением при отправке уведомлений из интерфейса Firebase.

Тот же код приема работал при отправке из службы C #

...