Firebase Cloud Messaging с приложением Ionic

Я занимаюсь разработкой приложения для Android / IOS с использованием ionic Framework (веб-технологий) и хочу добавить Push-уведомление с помощью новой функции Firebase FCM.

Прямо сейчас я смотрю на следующие документы:

https://firebase.google.com/docs/cloud-messaging/chrome/client#project-setup

что говорит:

Веб-сайты в Chrome могут реализовывать push-сообщения через сервисных работников и вебприложение проявляется в соответствии со стандартом Webpush. Приложения и расширения Chrome могут обращаться к службе FCM напрямую через chrome.gcm.
API.

Означает ли это, что я могу использовать его в своем ионном приложении для Android / IOS, так как приложение построено с использованием Cordova?

Также будет очень полезно, если есть какой-либо реализованный пример, который я могу увидеть и извлечь уроки.

Спасибо

 blockangular25 окт. 2016 г., 17:27
@Murtuza пока не может найти решение ...
 Murtuza22 окт. 2016 г., 09:06
@HassanAbbas нам еще предстоит реализовать функцию чата в нашем приложении с использованием Firebase. Может быть, через несколько недель. Будет ли обновляться, если это работает.
 blockangular20 окт. 2016 г., 20:45
@Murtuza вы нашли какое-либо решение
 Richard14 окт. 2016 г., 16:22
@Murtuza, я использовал это>npmjs.com/package/cordova-plugin-fcm
 Murtuza12 сент. 2016 г., 09:14
Так вы нашли решение?
 Gerard Cuadras06 июн. 2016 г., 15:57
Я предпочитаю использовать сторонние сервисы, такие как OneSignal, Pushbots и т. Д. Я думаю, что новые уведомления Firebase совместимы только с родной iOS / Android и нет никакой документации о Cordova. Проверь этоВот

Ответы на вопрос(5)

но для этого нужно написать собственный код для Android, iOS и других платформ, которые вы хотите использовать. К счастью, сообщество Cordova довольно большое, и работа уже сделана. Следующий плагин заявляет, что делает именно то, что вы хотите.

https://www.npmjs.com/package/cordova-plugin-fcm

Я еще не пробовал плагин, но в readme написано, что вы можете подписаться на темы из javascript и вызватьonNotification функция прослушивания уведомлений, удобная, когда ваше приложение находится на переднем плане.

 Murtuza12 сент. 2016 г., 09:13
Как насчет получения уведомлений в фоновом режиме. Нужно ли для этого выполнять кодирование на стороне сервера?
 Tim Baas14 сент. 2016 г., 13:57
@Murtuza Вам действительно понадобится код на стороне сервера, плагины, которые я пробовал, не позволяют вам делать это на внешнем интерфейсе. Номер значка обновляется из интерфейса.

Перейдите в Firebase и добавьте новое приложение IOS для облачных сообщений. Следуйте инструкциям и заполните простую форму для идентификатора своего приложения и т. Д. Вы создадите файл GoogleServices-Info.plist и загрузите его. Не обращайте внимания на вещи из кокоса. Тебе это не нужно.

Перейдите к платформе / ios приложения Ionic и откройте файл xcodeproject с помощью XCode.

Вставьте загруженный файл plist GoogleServices в корень файла проекта XCode.

Запустить. Или вы можете попробовать сохранить, а затем сделатьionic build ios, ionic emulate ios.

Я добавил старый phonegap-plugin-push ранее. Это должно было быть удалено из моего config.xml, иначе IOS не будет успешно собран.

 Brad W08 нояб. 2016 г., 18:57
Когда вы создаете приложение ios в firebase, выполняете ли вы настройку cocoapods в шагах 3 и 4? Когда я делаю, если я пытаюсь бежатьionic build ios впоследствии из командной строки я получаю эту ошибку; `Следующие команды сборки не выполнены: CompileC build / Apparent.build / Debug-iphonesimulator / Apparent.build / Objects-normal / i386 / AppDelegate.o Apparent / Classes / AppDelegate.m нормальный i386 target-c com.apple.compilers.llvm .clang.1_0.compiler (1 ошибка) Ошибка: код ошибки 65 для команды: ...
 JC Borlagdan06 мар. 2017 г., 04:35
Вы добавили в этот файл cordova-plugin-fcm?
 twicejr15 сент. 2016 г., 21:20
Для людей, использующих сборку Phonegap, можно использовать следующий плагин, разветвить его, а затем поместить вместо своих файлов-заполнителей ваши GoogleServices / google-services, зафиксировать, а затем использовать ваш разветвленный плагин в качестве локального плагина (cordova (или ionic). add /path/to/my/plugin/my.plugin.folder.here/) Успешно строится, не вылетает приложение на iOS (в отличие от исходного плагина) и имеет приятный интерфейс :)github.com/guyromb/cordova-plugin-fcm-plus

что этот вопрос уже юрский, но только для информации будущих разработчиков мобильных приложений, использующих Ionic Framework. Это 100% работает сейчас, я использую его в течение последних 3 недель.

Все, что вам нужно, это добавить эти 3 плагина

⁠⁠⁠ionic plugin add cordova-plugin-inappbrowser
ionic plugin add cordova-plugin-fcm
ionic plugin add cordova-plugin-velda-devicefeedback

Далее перейдите кКонсоль Firebase а также

Создать новый проект и дать ему имя;Выберите, какая платформа вам нравится (IOS / Android);Добавьте свойИмя пакета, который является идентификатором вашего приложения: вы можете увидеть его в своемconfig.xml (что-то вродеID = "com.ionicframework.someTest123").

Консоль Firebase предоставит вам файл с именемGoogle-services.json .

Вставьте его вплатформы / Android / каталогБежатьionic build android на вашем CLI

Теперь вы можете перейти на страницу уведомлений> Новое сообщение

Обязательно выберите приложение (идентификатор приложения), которое вы добавили, перед отправкой push-уведомлений.

 jose26 сент. 2017 г., 10:16
@JC Borlagdan да, я использую ionic1
 Richard20 сент. 2016 г., 16:42
необходимо обновить project.properties, чтобы иметь версию 9.2.0
 Stevie Star20 мар. 2017 г., 23:20
Так что я только сейчас читаю это, но работает ли этот же процесс для iOS?
 blockangular21 окт. 2016 г., 09:00
@ я отправил свой вопросstackoverflow.com/questions/40029942/...
 jose25 сент. 2017 г., 14:10
@JC Borlagdan Working Fine пришло уведомление, но я не получаю значок моего приложения в этом уведомлении, помогите кому-нибудь, как получить значок моего приложения в Push-уведомлении
 Shankar11 сент. 2016 г., 21:45
Привет @JCBorlagdan, я следил за всем, и когда я отправляю сообщение через страницу уведомлений, я получаю «Ошибка отправки сообщения». Нужно ли что-нибудь добавлять в app.js или где-нибудь еще? Я не делал последний упомянутый шаг при создании нового проекта в FCM - добавьте зависимость - gradle 3.0 и примените плагин: «com.google.gms.google-services». Если я добавлю во время строительства, это бросает ошибку.
 Richard20 сент. 2016 г., 12:11
Found com.google.android.gms:play-services-maps:+, but version 9.2.0 is needed for the google-services plugin. Found com.google.android.gms:play-services-location:+, but version 9.2.0 is needed for the google-services plugin. Found com.google.android.gms:play-services-gcm:9.0.2+, but version 9.2.0 is needed for the google-services plugin. :processDebugGoogleServices FAILED
 JC Borlagdan17 сент. 2016 г., 05:17
да, когда приложение открыто, мобильное уведомление не получено, вам необходимо изменить настройку fcm в вашем js, которую я до сих пор пытаюсь выяснить, как это сделать. В любом случае, приятно знать, что вы получаете уведомление. :)
 jose26 сент. 2017 г., 07:24
@JC Borlagdan да уже есть, но он не отображается во время прихода уведомления
 Neel Kamal02 сент. 2016 г., 08:41
Привет, Борлагдан. Это сработало для меня. Но мне интересно, как получить идентификатор устройства в моем ионном приложении?
 Shankar25 сент. 2016 г., 03:43
@JCBorlagdan Какой JS нам нужно изменить, я не включал JS-файлы, а также как отправить сообщение навыбранный пользователь? Я пробуюPHP, Не уверен, откуда мы можем получить"Message_id"
 jose27 сент. 2017 г., 08:43
но это не показывается @JCBorlagdan мне нужно что-то изменить
 JC Borlagdan13 сент. 2016 г., 06:07
если вы работаете с Android, нет необходимости добавлять что-либо из gradle ... все, что вам нужно сделать, это сохранить google-services.json в папке сборки .. если ошибка возникла из браузера, попробуйте использовать другой браузер, .. не уверен, что вызывает проблему, так как я до сих пор использую push-уведомления
 JC Borlagdan08 июн. 2017 г., 20:21
inappbrowser по какой-то причине уведомление рассматривается как веб, находящийся вне приложения, но устройство видит его как внутри приложения. Обратная связь устройства velda предназначена только для отчета, который отражается на firebaseconsole, и на него ссылается имя пакета вашего приложения.
 Richard20 сент. 2016 г., 12:08
Я получаю следующее, когда следую инструкциям выше, и собираю (я использую Ionic2). Любые идеи, пожалуйста?Execution failed for task ':processDebugGoogleServices'. > Please fix the version conflict either by updating the version of the google-services plugin (information about the latest version is available at https://bintray.com/android/android-tools/com.google.gms.google-services/) or updating the version of com.google.android.gms to 9.2.0.
 JC Borlagdan27 сент. 2017 г., 09:43
 Xerri11 мая 2017 г., 18:06
Зачем нам нужен cordova-plugin-inappbrowser и cordova-plugin-velda-devicefeedback? Там нет упоминания о ключе сервера или идентификаторе отправителя из firebase.
 Richard14 окт. 2016 г., 16:21
@mrid. Я использовал это:npmjs.com/package/cordova-plugin-fcm
 blockangular20 окт. 2016 г., 21:17
@JCBorlagdan, пожалуйста, вы можете предоставить учебник. Я следую всем шагам. но не смог достичь своей цели ..
 blockangular21 окт. 2016 г., 09:02
 jose26 сент. 2017 г., 06:59
@JC Borlagdan Я не знаю, как разместить значок внутри консоли Firebase, приведите пример или ссылку, плз
 JC Borlagdan26 сент. 2017 г., 01:38
@ насколько я помню, вы можете поместить значок в консоль Firebase
 JC Borlagdan26 сент. 2017 г., 07:15
@jose у вашего приложения уже есть значок?
 JC Borlagdan15 сент. 2016 г., 03:49
Вы уже добавили google-services.json? приложение закрывается, когда вы пытаетесь отправить пуш?
 mrid14 окт. 2016 г., 15:06
@Richard, ты смог решить эту проблему ?? Я спрашиваю, потому что я сам получаю эту ошибку.
 Neel Kamal02 сент. 2016 г., 11:54
Я буду использовать его для отправки уведомления конкретному пользователю. В любом случае, я решил эту проблему, следуя документации по обновлениям ionic.
 Neel Kamal02 сент. 2016 г., 11:55
 JC Borlagdan26 сент. 2017 г., 07:26
@ jose ты используешь ионный?
 jose29 сент. 2017 г., 20:04
После того, как приложение и свернулось, уведомить сработало, может быть, я закрыл приложение и отправил уведомление, что оно не открывается.
 Shankar25 сент. 2016 г., 03:57
Я имел ввиду"Registration_id", а не message_id, я думаю, что registration_id - это идентификатор устройства, и я думаю, что мы можем получить через ionic.Platform.device () или window.device.uuid.
 JC Borlagdan02 сент. 2016 г., 10:02
могу я спросить, для чего ты собираешься использовать идентификатор устройства?
 JC Borlagdan27 сент. 2017 г., 02:40
и действительно ли у вашего приложения есть значок, когда вы помещаете его в свой телефон Android? Coz Firebase использует значок, который прикреплен к конфигурации, которая содержит идентификатор приложения, которое вы зарегистрировали
 Shankar16 сент. 2016 г., 19:39
Вдруг это работает сейчас, не уверен, в чем была проблема. Когда приложение закрывается, получение уведомления без звука и если приложение открыто, уведомление не приходит, а в FCM - показывает отправленное сообщение. Спасибо!
 JC Borlagdan02 окт. 2017 г., 01:14
я не уверен в вашей проблеме, в том, как она не открывается, когда вы нажимаете на приложение, так как у FCM есть код для него ... я думаю, что вам не хватает SDK для вашей платформы Android
 Shankar13 сент. 2016 г., 18:12
Хорошо, да, я пытаюсь в Android, я получаю сообщение об ошибке в консоли Firebase при попытке отправить сообщение, оно показывает «Ошибка отправки сообщения»
 Shankar16 сент. 2016 г., 19:34
Да, я добавил google-services.json, и приложение было открыто. После загрузки google-services.json был следующий / последний шаг, чтобы добавить Gradle 3.0 и применить плагин: «com.google.gms.google-services», добавив, что выдает ошибку.
 JC Borlagdan21 мар. 2017 г., 02:25
я не пробовал это сейчас на iOS. но проверьте ответ Бен Луиса ниже
 Davor14 сент. 2017 г., 09:38
Мне пришлось поместить google-services.json в корень проекта вместо платформы / Android. Все остальное работало нормально.
 JC Borlagdan21 окт. 2016 г., 02:27
@HassanAbbas еще нет свободного времени, потому что я нахожусь в офисе весь день до следующего месяца, с какой частью вы сталкиваетесь с проблемой или с какой проблемой вы сталкиваетесь?

браузера, из которых я не верю, что у cordova есть такой, который будет работать изначально. Вы можете и должны использовать FCM для всех платформ, но вам придется работать над добавлением поддержки для каждой платформы вручную или ждать разработки push-плагинов.

Push-плагин phonegap обновляется для поддержки FCM:Миграция в Firebase Cloud Messaging # 929

В качестве альтернативы вы можете использовать старую платформу GCM с плагином phonegap, но вы захотите обновить свой push-API на стороне сервера, чтобы использовать FCM, как только плагин будет готов.

 Dave12 июл. 2016 г., 12:16
Ссылка только ответы не очень полезны; ссылка может быть повреждена или иным образом изменена. Пожалуйста, добавьте соответствующий контекст из ссылки на ваш ответ.

Ваш ответ на вопрос