구현하고 싶은 상황

  1. 현재 웹 뷰로 웹 컨텐츠를 보고있는 상황
  2. FCM을 통해 알림이 온다.
  3. 알림을 누르면 웹 뷰 안에서 새로운 웹 페이지로 이동하게 하고싶다.

구현 방법

  1. Intent만들기 + Flag 설정
  2. 웹뷰를 띄우는 Activity에서 onNewIntnet 오버라이드하기

 

val intent = Intent(this, WebViewActivity::class.java).apply {
    flags = Intent.FLAG_ACTIVITY_SINGLE_TOP
    putExtra("url", "www.example.com")
}

val pendingIntent = PendingIntent.getActivity(this, 1, intent, PendingIntent.FLAG_CANCEL_CURRENT or PendingIntent.FLAG_IMMUTABLE)

val notification = NotificationCompat.Builder(this, CHANNEL_ID)
    .setContentTitle(title)
    .setContentText(body)
    .setContentIntent(pendingIntent)
    .setAutoCancel(true)
    .build()

notificationManager.notify(CHAT_NOTIFICATION_ID, notification)

이런 식으로 PendingIntent와 Notification을 만든다.

 

@Override
protected void onNewIntent(Intent intent) {
    super.onNewIntent(intent);

    webView.loadUrl(intent.getExtras().getString("url"));
}

그리고 WebViewActivity 안에서 onNewIntent를 오버라이딩하면된다.

+ Recent posts