2

Я создаю приложение чата в Ionic 2 и нуждаюсь в реализации Push-уведомлений.Push-уведомления в Ionic 2

В связи с тем, что Google недавно применил свою услугу GCM, чтобы использовать FCM, документации о том, как реализовать с ней приложение, не так много. Я нашел following tutorial, который ищет то, что мне нужно.

Учебное пособие кажется хорошим, однако я смущен несколькими проблемами, и любая помощь будет оценена по достоинству.

Я занимаюсь разработкой на Windows-машине, поэтому в настоящее время вы просто строите Android.

Вопрос 1

Я путать со следующим утверждением:

Построить и запустить на реальных андроид и IOS устройств, чтобы увидеть маркер устройства в консоли.

Когда я бегу ionic build android, он не создает устройство маркера в консоли. Знаете ли вы, как я могу узнать, что означает токен ?

Или это просто сгенерировано во время выполнения на data.registrationId, и это передается на сервер?

 push.on('registration', (data) => { 
      console.log("device token ->", data.registrationId); 
      //TODO - send device token to server 
     }); 

Вопрос 2

В Java,

static String API_KEY = "YOUR_GCM_API_KEY"; 
static String device_token = "YOUR_DEVICE_TOKEN"; 

Для static String API_KEY = "YOUR_GCM_API_KEY";, является YOUR_GCM_API_KEYсервера Key или Sender ID от ТСМ?

Получено ли у пользователя static String device_token = "YOUR_DEVICE_TOKEN"; приложение Ionic, когда вы это делаете: console.log("device token ->", data.registrationId);? т.е. передается ли от клиента серверу?

enter image description here

Вопрос 3

Если мы направляем отдельные сообщения для отдельных устройств, например для приложения чата, как мы можем различать устройства? Каждое сообщение чата имеет идентификатор, связывающий его с уникальной парой пользователей (например, [userId1,userId2]), но в вашем примере используется токен устройства, как вы отправляете его для уникальной пары пользователей?

Вопрос 4

я получаю следующее во время выполнения в браузере.

EXCEPTION: Error: Uncaught (in promise): TypeError: push.on is not a function 

Могу ли я игнорировать это? Я подозреваю, что это происходит только в браузере, и я не получу эту ошибку, когда она работает на реальном устройстве.

UPDATE

Похоже, все вопросы, кроме Вопрос 3 был дан ответ ниже. Я предполагаю, что это может быть сделано с какой-то паб/субмодель на ключ, который уникален для чата.

+0

Я разработал пост для Ионных Framework 2 нажимного уведомления с нуля, используя http://ampersandacademy.com/tutorials/ionic-framework-version-2/push-notification-using-google-firebase – Bharathiraja

+0

Эй @Richard сделала вы решаете эту проблему, я получил ту же ошибку в своем приложении. – Ricardo

ответ

0

Я не пробовал ионную раньше, но я буду идти вперед и попытаться дать свои идеи в отношении ваших вопросов, где я думаю, что некоторые из них будут по крайней мере полезно:

  1. Довольно точно, что это просто означает запустить приложение на самом устройстве, а не на эмуляторе или в браузере. Учитывая имя, я думаю, что причина, по которой они требуют запуска реального устройства, состоит в том, что, возможно, это идентификатор, который извлекается из самого устройства.

  2. Это ключ сервера. ПРИМЕЧАНИЕ. Вы всегда должны хранить секретный ключ сервера и идентификатор отправителя.

  3. Для GCM/FCM одна вещь, которая обычно используется, - это registration_token, которая, я думаю, в данном случае является аналогом маркера устройства.

  4. Не уверен с этим. Я видел это similar post, хотя он все еще не разрешен. Оглянитесь вокруг сообщества, может быть, другая должность похожа на него.

+0

Спасибо AL. Я буду хранить свои ключи в секрете. Этот экран печатает из вышеупомянутого учебника. – Richard

+0

@ Рихард Приветствую вас. Goodluck с вашим приложением. :) –

0

Вопрос 1

Это Разрабатывают маркер передается от клиента к серверу: data.registrationId.

Вопрос 2

YOUR_GCM_API_KEY является Сервер ключа генерируется ТСМ. YOUR_DEVICE_TOKEN передается от клиента: data.registrationId.

Вопрос 3

Не уверен, но, я исследовать дальше?

Вопрос 4

Ошибка может быть проигнорировано, это не происходит на завещанию.