2016-12-08 5 views
0

Я пишу приложение Android + iOS с помощью Cordova/PhoneGap + Ionic2, и я хотел бы открыть приложение, когда получено push-уведомление.Открытое приложение, когда нажимается сигнал

Если приложение является фоном, как я могу открыть его после получения нажатия? Я бы хотел, чтобы это произошло без нажатия кнопки пользователем - так же, как Skype, когда вы получаете входящий звонок.

Вот мой текущий обработчик для уведомления толчка:

// Handle received Push 
this.push.rx.notification().subscribe((msg) => { 
    alert(msg.title + ': ' + msg.text); 
}); 

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

Я просмотрел How to bring a Cordova Android application to foreground or start and bring to foreground once connected (and turn screen on) programmatically on GCM и https://github.com/MobileChromeApps/cordova-plugin-background-app - но у меня все еще нет событий, которые происходят ДО того, как пользователь нажимает на уведомление, в котором можно вызвать этот плагин, и поэтому не может этого использовать.

ответ

0

Вам нужно пойти на родной язык, даже если есть несколько плагинов, которые позволяют обрабатывать очень хорошие потоки GCM/FCM, большинство из которых (по крайней мере, те, на которые я верю) не обрабатывают то, что вы хотите.

В Android вы можете использовать BroadcastReceiver и здесь решить, показывать или нет уведомление, а после этого решить, запускать ли приложение Intent или нет.

В iOS вы можете использовать метод didReceiveRemoteNotification и решить, что с ним делать.

В обоих случаях я считаю, что показать приложение без каких-либо действий пользователя можно считать плохим опытом UX (даже если это возможно). Например, для iOS они никогда не упоминают эти опции в своих для обработки состояний приложения.

+0

Спасибо, что указали эти события, они звучат так, как я и ищу, и я буду смотреть на них. Re: плохой UX, я бы согласился, что это кажется навязчивым, но потом я думаю о Skype, который, похоже, делает то же самое. Как и Skype, мое намерение состояло бы не в том, чтобы просто открывать приложение при нажатии, а вместо этого показывать экран, который позволяет им выбирать, какое действие следует предпринять дальше. Надеюсь, это не было бы навязчивым, и кажется возможным, учитывая, что Skype это делает. –

Смежные вопросы