Intereting Posts
Как уловить удаление приложения на устройстве и сообщить серверу об этом (iOS / Android) Распознавание активности в сервисах Google Play – использование батареи? Лучший подход к передаче данных из веб-представления в родное приложение (Windows, iOS и Android) Как показать количество уведомлений на значок приложения, например Facebook? Есть ли эквивалент инспектору DOM для собственных макетов Android? Выделите текст выбранной вкладки другим цветом с помощью ViewPagerIndicator Notification.bigContentView устарел в API 24 (Нуга), что является альтернативой? Воспроизведение видео на YouTube с помощью ExoPlayer Android StrictMode InstanceCountViolation Позволяет телефону спать при использовании сигнала RTC на Android Android: Как установить тайм-аут для сокетов SSL для блокировки чтения / записи с помощью ThreadSafeClientConnectionManager? Почему мы иногда вызываем супер в Android? Как удалить белый экран при загрузке приложения для Android? Android googleMap Map не отображается, только сетка, иногда Преобразование кадров в миллисекунды в android

Открытие браузера с помощью push-уведомления

Я пытаюсь открыть браузер с URL-адресом, когда пользователь нажимает на push-уведомление, я ищу в stackoverflow, и я нахожу это

Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); startActivity(browserIntent); 

Но он не работает для меня, когда я полагаю, что уведомление не появляется, я отлаживал его, и он просто бросал редактор файлов классов без ошибок или чего-то еще.

Это код

  public void mostrarNotificacion(Context context, String body,String title, String icon, String url,String superior) { String ns = Context.NOTIFICATION_SERVICE; NotificationManager notManager = (NotificationManager) context.getSystemService(ns); int icono = R.drawable.mydrawable; CharSequence textoEstado = superior; long hora = System.currentTimeMillis(); Notification notif = new Notification(icono, textoEstado, hora); Context contexto = context.getApplicationContext(); CharSequence titulo = title; CharSequence descripcion = body; PendingIntent contIntent; if(url.equalsIgnoreCase("NULL")) { Intent notIntent = new Intent(contexto,MainActivity.class); contIntent = PendingIntent.getActivity( contexto, 0, notIntent, 0); } else { // Intent i = new Intent(Intent.ACTION_VIEW); //i.setData(Uri.parse(url)); // contIntent = PendingIntent.getActivity(contexto, 0, i, 0); Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); startActivity(browserIntent); } // notif.setLatestEventInfo(contexto, titulo, descripcion, contIntent); //AutoCancel: notif.flags |= Notification.FLAG_AUTO_CANCEL; //send notif notManager.notify(1, notif); } 

Solutions Collecting From Web of "Открытие браузера с помощью push-уведомления"

Что вам нужно сделать, это установить ожидающее намерение – которое будет вызываться, когда пользователь нажимает уведомление. (Вы только что начали заниматься …)

Вот пример кода:

 private void createNotification(String text, String link){ NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this) .setAutoCancel(true) .setSmallIcon(R.drawable.app_icon) .setContentTitle(text); NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); // pending implicit intent to view url Intent resultIntent = new Intent(Intent.ACTION_VIEW); resultIntent.setData(Uri.parse(link)); PendingIntent pending = PendingIntent.getActivity(this, 0, resultIntent, PendingIntent.FLAG_UPDATE_CURRENT); notificationBuilder.setContentIntent(pending); // using the same tag and Id causes the new notification to replace an existing one mNotificationManager.notify(String.valueOf(System.currentTimeMillis()), PUSH, notificationBuilder.build()); } 

Изменить 1: я изменил ответ, чтобы использовать PendingIntent.FLAG_UPDATE_CURRENT для примера. Спасибо Авиву Бен Шабату за комментарий.

Редактировать 2: После комментария Alex Zezekalo обратите внимание, что открытие уведомления с экрана блокировки, предполагая, что используется хром, не будет выполнено, как описано в открытой проблеме: https://code.google.com/p/chromium/issues/detail? Id = 455126 –
Chrome будет игнорировать намерение, и вы сможете найти в своем логарифме – E / cr_document.CLActivity: Игнорирование намерения: Intent {act = android.intent.action.VIEW dat = http://google.com/ … Flg = 0x1000c000 cmp = com.android.chrome / com.google.android.apps.chrome.Main (есть дополнительные функции)}