Firebase Уведомления

Я хотел бы знать, может ли кто-нибудь помочь мне с деталями, которые у меня есть с Android. Сценарий таков:

У меня есть заряд Webview в моей основной деятельности, и все в порядке, если я покидаю приложение и снова вхожу, это не перезагружает страницу.

Проблема в том, что когда я получаю уведомление с помощью Firebase, если я открою уведомление, я снова вызову метод onCreate() своей активности и, следовательно, перезарядю свою WebView ситуацию, которую я хочу избежать. Вопрос заключается в следующем:

Можно ли открыть мое приложение, щелкнув уведомление без необходимости использовать метод onCreate ()?

Я надеюсь, что кто-то может мне помочь , С уважением.

0
задан 26.11.2016, 01:16
3 ответа

ВїSe может открываться я aplicaciГіn, кликнув в ней notificaciГіn, не будучи должен происходить из-за mГ©todo onCreate?

, Чтобы открывать ее aplicaciГіn, осуществляется посредством PendingIntent , aquГ - несколько ответов как реализовывать это.

https://es.stackoverflow.com / в / 28862/95

https://es.stackoverflow.com / в / 22127/95

https://es.stackoverflow.com / в / 35726/95

, Относительно которых ты хочешь открыть ее aplicaciГіn и не хочешь, чтобы этой было должно сходить за onCreate(), помнит, что, чтобы открывать Activity, ты обязательно должен перемещать из-за onCreate()-> onStart()-> onResume(), это определено в жизненном цикле Activity:

introducir la descripción de la imagen aquí

Следовательно не является возможно, что его не сходит за onCreate() если только ты заблаговременно не откроешь ее aplicaciГіn.

0
ответ дан 24.11.2019, 12:22
  • 1
    Спасибо за ответ. Estaré комментируя. Привет. –  Jarboox 26.11.2016, 00:48

@Gonzalo GM, этот тот cГіdigo, чтобы создавать ее notificaciГіn:

private void showNotification(Map<String, String> data) {

    Intent i = new Intent(this, MainActivity.class);

    //i.putExtra("Activity", data.get("Main"));
    i.putExtra("Activity", "Main");

    PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, i, PendingIntent.FLAG_ONE_SHOT);

    long[] pattern = new long[] { 2000, 500, 2000 };

    Uri defaultSound = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);

    NotificationCompat.Builder builder = new NotificationCompat.Builder(this)
            .setAutoCancel(true)
            .setContentTitle(data.get("Title"))
            .setVibrate(pattern)
            .setSound(defaultSound)
            .setWhen(System.currentTimeMillis())
            .setContentText(data.get("Message"))
            .setSmallIcon(R.drawable.redgps)
            .setContentIntent(pendingIntent);

    int defaults = 0;

    defaults = defaults | Notification.DEFAULT_LIGHTS;
    defaults = defaults | Notification.DEFAULT_VIBRATE;
    defaults = defaults | Notification.DEFAULT_SOUND;

    builder.setDefaults(defaults);

    Random r = new Random();

    int idNotificacionG = r.nextInt(80 - 65) + 65;

    NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);

    manager.notify(idNotificacionG, builder.build());
}
0
ответ дан 24.11.2019, 12:22

Jarbox используя консоль Firebase не могут настраивать событие click в ней notificaciГіn. Чтобы это делать ты должен делать следующее:

  1. ты Должен делать один mГ©todo в классе firebaseService, что, когда token это получает envГ - и в базу данных в algГєn твой сервер, посвященный для этого.

  2. ты Должен создавать твою собственную консоль, а именно делать одну pequeГ±a app Веб, где у тебя были все поля, которые ты хочешь послать в твоем сообщении ej: я называю, сдержано, и т.д.

  3. Как только у тебя есть твой html, в момент делания "submit" с algГєn botГіn, ты должен призывать к файлу php , в этот файл ты должен помещать твой WebKey , что ты получаешь ее от консоли FireBase . этот файл php будет получать данные, посланные с формуляра html, пойдет присоединять к твоей базе данных, будет получать один в один tokens, будет общаться с серверами FireBase и пошлет данные в каждое из устройств.

  4. В твоем классе FireBaseMessagingService, ты осуществляешь mГ©todo onMessageReceived, который получает один parГЎmetro от типа RemoteMessage. чтобы знать, было ли все довольно грубым с if(remoteMessage.getNotification()!=null), если это истинное ты получаешь данные о следующем способе:

    String titulo = remoteMessage.getNotification().getTitle();
    String contenido= remoteMessage.getNotification().getBody();
    

в случае, если у тебя будет algГєn другой тип информации и я не фигурировал в getters , ты получаешь их asГ -

descuento = remoteMessage.getData().get("discount");

это одна explicaciГіn обобщенная, я оставляю тебе соединение как делать это. Удача

FireBase, Android, php

0
ответ дан 24.11.2019, 12:22
  • 1
    sí все это уже я это завожу друга, извинение из-за того, что не упоминаю об этом. Я сделал все это, что ты комментируешь, echo я получаю извещения с db и посылаю их с классом, который он создавал бы в PHP. –  Jarboox 25.11.2016, 21:23
  • 2
    тогда я не понял, что ты нуждаешься. объяснись лучше –  Gonzalo GM 25.11.2016, 21:47