У меня есть веб-приложение / приложение для Android, написанное с использованием Ionic 4 и Capacitor, и я безуспешно пытаюсь повторно ввести приложение Ionic на определенную страницу из уведомления, полученного с Androidсервис (активируется через конденсаторный плагин).
Вот код, который создает уведомление в сервисе:
private Notification getNotification() {
CharSequence contentTitle = "Fun App Background Mode Running";
CharSequence contentText = "Fun App";
long notificationTime = System.currentTimeMillis();
if (_NFC == null) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
NotificationChannel channel = new NotificationChannel("funapp", "FunApp", NotificationManager.IMPORTANCE_DEFAULT);
channel.enableLights(false);
channel.enableVibration(false);
channel.setSound(null,null);
channel.setLockscreenVisibility(Notification.VISIBILITY_PRIVATE);
channel.setShowBadge(true);
manager.createNotificationChannel(channel);
}
Intent notificationIntent = new Intent(this, MainActivity.class);
TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);
stackBuilder.addNextIntentWithParentStack(notificationIntent);
PendingIntent pendingIntent =
stackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT);
_NFC = new NotificationCompat.Builder(getApplicationContext(),"funapp")
.setSmallIcon(R.drawable.ic_sheep_notif)
.setLargeIcon(BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher_foreground))
.setPriority(NotificationCompat.PRIORITY_LOW)
.setCategory(NotificationCompat.CATEGORY_SERVICE)
.setVisibility(NotificationCompat.VISIBILITY_SECRET)
.setContentTitle(contentTitle)
.setContentText(contentText)
.setStyle(new NotificationCompat.BigTextStyle().bigText(contentText).setBigContentTitle(contentTitle))
.setContentIntent(pendingIntent)
.setOngoing(true);
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.O){
_NFC.setPriority(NotificationCompat.PRIORITY_LOW);
}
}
_NFC.setContentTitle(contentTitle);
_NFC.setContentText(contentText);
_NFC.setStyle(new NotificationCompat.BigTextStyle().bigText(contentText).setBigContentTitle(contentTitle));
_NFC.setWhen(notificationTime);
return _NFC.build();
}
Я считаю, что мне нужно поместить что-то в / около линии new Intent(this, MainActivity.class)
чтобы заставить Capacitor / Ionic инициализировать приложение в нужном состоянии, но я не могу понять, что это должно быть!
Я изучил документацию Capacitor и не смог найти решение до сих пор, яесть подозрение, что мне нужно отправить намерение «просмотра» в действие с каким-то URL-адресом?
В настоящее время он запускает то, что кажется совершенно новым экземпляром приложения (- загружает заставку и т. д.), даже если приложение по-прежнему является приоритетной задачей на телефоне.
ОБНОВЛЕНИЕ
Моя последняя попытка - создатьнамерение, подобное этому:
Intent notificationIntent = new Intent(Intent.ACTION_VIEW,
Uri.parse("http://localhost/event/horse"),
this, MainActivity.class);
(при условии, что у меня есть действительный маршрут в Ionic / Angular для / event / horse, что я и делаю)
Без изменений, это все равно выражаеттакое же поведение, как описано выше (повторный вход в заставку).