Juan Manuel Ortega
Juan Manuel Ortega

Reputation: 57

Acces, open, or edit a webview from FCM notification

I have implemented android FCM in my application , my App only loads a web application in the WebView.

I wanna change the url of webview after receiving (and click) of FCM notification. I manage the notification in "MyFirebaseMessagingService.java", specifically in sendNotification method.

private void sendNotification(String messageBody) {
    Intent intent = new Intent(this, Principal.class);
    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent,
            PendingIntent.FLAG_UPDATE_CURRENT);

/*HERE I WANNA ACCES, CREATE OR EDIT A WEBVIEW*/


    Uri defaultSoundUri= RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
    NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)
            .setSmallIcon(R.mipmap.ic_launcher)
            .setContentTitle("Formación Alcalá")
            .setAutoCancel(true)
            .setSound(defaultSoundUri)
            .setContentIntent(pendingIntent)
            .setStyle(new NotificationCompat.BigTextStyle()
                    .bigText(messageBody))
            .setContentText(messageBody);



    NotificationManager notificationManager =
            (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

    notificationManager.notify(0, notificationBuilder.build());
}

I think this should be possible. Please , someone could guide me ? P.D. Sorry for my bad english.

Upvotes: 3

Views: 2205

Answers (1)

h_patel
h_patel

Reputation: 744

check this

Intent notificationIntent = new Intent(getApplicationContext(), MainActivity.class);
notificationIntent.putExtra("URl", Your URL);
notificationIntent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP |            Intent.FLAG_ACTIVITY_CLEAR_TOP);
PendingIntent pendingNotificationIntent =      PendingIntent.getActivity(getApplicationContext(),notificationIndex,notification    Intent,PendingIntent.FLAG_UPDATE_CURRENT);
notification.flags |= Notification.FLAG_AUTO_CANCEL;
notification.setLatestEventInfo(getApplicationContext(), notificationTitle,      notificationMessage, pendingNotificationIntent);

and in your main Activity :

Bundle extras = intent.getExtras();
if(extras != null){
    if(extras.containsKey("NotificationMessage"))
    {
        setContentView(R.layout.viewmain);
        // extract the extra-data in the Notification
        String url= extras.getString("URl");
        webview.loadurl(url);
    }
}

Upvotes: 3

Related Questions