Как исправить то, что при уведомлении кликнувшая активность не открылась - PullRequest
0 голосов
/ 08 января 2019

Хочу, чтобы при нажатии на уведомление приложение открывало страницу facebook. Если приложение откроется, и я нажму на уведомление, то все будет работать. Проблема в том, что когда приложение закрывается, я получаю уведомление, но когда я нажимаю на уведомление, открывается MainActivity, а не страница facebook.

Я пытался искать ответы, но ничего не получается

public class MyFirebaseMessagingService extends FirebaseMessagingService {

@Override
public void onMessageReceived(RemoteMessage remoteMessage) {

    NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
    String NOTIFICATION_CHANNEL_ID = "channel";

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O){
        NotificationChannel notificationChannel = new NotificationChannel(NOTIFICATION_CHANNEL_ID, "Notification", NotificationManager.IMPORTANCE_DEFAULT);
        notificationChannel.setDescription("Description");
        notificationChannel.enableLights(true);
        notificationChannel.setLightColor(Color.RED);
        notificationChannel.setVibrationPattern(new long[]{0,1000,500,1000});
        notificationManager.createNotificationChannel(notificationChannel);
    }

    NotificationCompat.Builder builder = new NotificationCompat.Builder(this, NOTIFICATION_CHANNEL_ID);
    Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://www.journaldev.com/"));
    Uri uri = Uri.parse(remoteMessage.getData().get("link"));
    Log.d("TAG",remoteMessage.getData().get("link"));
    try {
        ApplicationInfo applicationInfo = getPackageManager().getApplicationInfo("com.facebook.katana", 0);
        if (applicationInfo.enabled)
            uri = Uri.parse("fb://facewebmodal/f?href=" + remoteMessage.getData().get("link"));
        intent = new Intent(Intent.ACTION_VIEW, uri);

    } catch (PackageManager.NameNotFoundException e) {
        e.printStackTrace();
    }
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
    builder.setContentIntent(pendingIntent).setAutoCancel(true).setDefaults(Notification.DEFAULT_ALL).setWhen(System.currentTimeMillis())
            .setSmallIcon(R.drawable.logo).setLargeIcon(BitmapFactory.decodeResource(getResources(), R.drawable.logo))
            .setContentTitle(remoteMessage.getNotification().getTitle()).setContentText(remoteMessage.getNotification().getBody()).setContentInfo("Info");
    notificationManager.notify(0, builder.build());
}

}

Manifest:

<service android:name=".MyFirebaseMessagingService">
        <intent-filter>
            <action android:name="com.google.firebase.MESSAGING_EVENT" />
        </intent-filter>
    </service>

Я ожидал, что когда я нажму на уведомление, когда приложение закрыто, будет тот же результат, что и при открытии приложения, но когда приложение открыто, откроется страница facebook и когда приложение закрыто, это только открыло основная деятельность.

...