2013-05-14 3 views
0

Я использую GCM Cordova (скачанный вчера с Cordova 2.6). Я нахожу это, пока у меня есть уведомления, которые будут получены успешно, используя пример кода. Однако нажатие на уведомление просто очищает его и закрывает список уведомлений - само приложение не запускает.GCM Cordova - Не открывать приложение

Запуск приложения на телефоне, подключенном к Eclipse, показывает мне, что GCMIntentService получает сообщение (onMessage) и, наконец, запускает «Освобождающий wakelock», но приложение не открывается. Разве это не должно быть, или мне нужно изменить код из примера, чтобы достичь этого.

Я также заметил, что если я заставляю остановить приложение, уведомления больше не принимаются. Это нормально?

ответ

0

Кажется, что ответ не прост - но предполагает настройку намерения.

Я последовал за эту статью, чтобы начать: http://www.adobe.com/devnet/phonegap/articles/android-push-notifications-with-phonegap.html

Водопроводная не работает в данный момент, так что я сделал следующее. Добавлен следующий код манифеста:

<intent-filter> 
<action android:name="NAMEOFAPP.STARTME" /> 
<category android:name="android.intent.category.DEFAULT" /> 
</intent-filter> 

Этот код был помещен в файл GCMIntentService.java - он заменяет большую часть кода уведомительного выше проект относится к:

String message = extras.getString("message"); 
    String title = extras.getString("title"); 

    Intent nintent = new Intent("uk.ac.chester.uocmobile.STARTME"); 
    nintent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 


    nintent.addCategory(Intent.CATEGORY_DEFAULT); 
    PendingIntent pintent = PendingIntent.getActivity(context, 0, nintent, 0); 

    NotificationCompat.Builder mBuilder = 
      new NotificationCompat.Builder(this) 
       .setSmallIcon(R.drawable.icon) 
       .setContentTitle(context.getString(R.string.app_name)) 
       .setContentIntent(pintent) 
       .setWhen(System.currentTimeMillis()) 
       .setPriority(Notification.PRIORITY_HIGH) 
       .setAutoCancel(true) 
       .setContentText(message) 
       .setDefaults(Notification.DEFAULT_ALL); 
    NotificationManager mNotificationManager = 
     (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); 
      mNotificationManager.notify(0, mBuilder.build()); 

Вы будете нужно добавить этот импорт в тот же файл:

  import android.support.v4.app.NotificationCompat; 

Если вы сделаете это без следующего процесса вы получите ошибку компиляции.

Щелкните правой кнопкой мыши свой проект и зайдите в Инструменты Android -> Добавить библиотеку поддержки. Добавьте библиотеку поддержки Android, версия 13. Это добавляет эти призывы к вашему проекту и заставляет все это работать.

Когда вы нажмете на уведомление после этого, оно откроет ваше приложение - отправив вас на домашнюю страницу, которую вы установили. Это может быть не идеальным, но работает для меня. Я добавил onstart и onresume, чтобы убедиться, что приложение (в формате HTML/JS) на iOS или Android проверяет наличие новых сообщений так же, как и приложение FaceBook.

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