Уведомление Android с использованием толкателя для чата

Используя pusher, мы можем общаться в чате на разных платформах, включая Android. В Android мы хотим отправить уведомление пользователю при получении сообщения, даже если приложение не запущено или мы не во фрагменте чата. Я ознакомился с тем, как работают сервисы и широковещательный приемник, но, похоже, они не подходят для этого. Нам нужно что-то реализовать таким образом, чтобы всякий раз, когда событие запускается в толкателе, мы могли отправлять уведомление в панель уведомлений в приложении. Как мы можем сделать это?

С Уважением


person Shashank Sharma    schedule 26.08.2015    source источник


Ответы (3)


Это возможно. Просто используйте Global «Thread» вместо «runOnUiThread». Вот мой код класса обслуживания. Если все еще сталкиваетесь с какой-либо проблемой, не стесняйтесь задавать свою проблему.

Thread readthread;
@Override
public int onStartCommand(Intent intent, int flags, int startId) {

    Pusher pusher = new Pusher("faa685e4bb3003eb825c");

    pusher.connect();

    Channel channel = pusher.subscribe("messages");

    channel.bind("new_message", new SubscriptionEventListener() {
        @Override
        public void onEvent(String channelName, String eventName, final String data) {
            readthread = new Thread(new Runnable() {
                @Override
                public void run() {
                    Log.i("Successss","Pusher run on Background");
                    Gson gson = new Gson();
                    Message message = gson.fromJson(data, Message.class);
                    // Notification(message);
                    // Write your code here. 
                }

            });

            readthread.start();
        }

    });
    return START_STICKY;
}
person Shohan Ahmed Sijan    schedule 07.04.2016


В настоящее время Pusher не предлагает поддержку собственных push-уведомлений. Однако Pusher предоставляет способ определить, находится ли пользователь в данный момент в сети. Используя этот механизм, можно определить, как сообщение должно быть отправлено пользователю.

  1. Если они в сети, отправьте сообщение через Pusher
  2. Если они не в сети, отправьте сообщение по электронной почте, SMS или родному Push-уведомлению.

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

  1. Используйте каналы присутствия и настройте WebHooks, чтобы ваш сервер знал, когда пользователь подписывается/отписывается от этого канала.
  2. Создайте уникальный канал для каждого пользователя. Если канал занят, значит, они онлайн. Если канал свободен, они не в сети. Вы также можете использовать WebHooks, чтобы мгновенно получать информацию, когда канал становится занятым (пользователь подключается к сети) или освобождается (пользователь выходит из сети).

В обоих случаях также можно использовать Pusher HTTP API и запрос состояния канала чтобы определить, занят ли канал (пользователь в сети) и участники, которые подписаны на канал присутствия.

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

person leggetter    schedule 27.08.2015