Open android app from PUSH notification

前端 未结 4 1386
独厮守ぢ
独厮守ぢ 2021-02-06 02:41

Got a little problem that\'s been bugging me..

I\'ve set up my application to receive PUSH notifications from Urban Airship and that all works fine, but when I tap on a

相关标签:
4条回答
  • 2021-02-06 03:15

    Following one of their sample projects (https://github.com/urbanairship/android-samples/tree/master/app/src/main/java/com/urbanairship/sample), you can extend the AirshipReceiver class and then override the onReceive method. This did the trick for me:

    @Override
    public void onReceive(Context context, Intent intent) {
        super.onReceive(context, intent);
    
        String action = intent.getAction();
        if (action.equals(PushManager.ACTION_NOTIFICATION_OPENED)) {
            Intent launch = new Intent(Intent.ACTION_MAIN);
            launch.setClass(UAirship.shared().getApplicationContext(), MyHome.class);
            launch.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            launch.putExtra("doWhatever",true);
            UAirship.shared().getApplicationContext().startActivity(launch);
        }
    
    }
    
    0 讨论(0)
  • 2021-02-06 03:18

    You need to use a custom notification builder and use one of your activities as the PendingIntent.

    https://docs.urbanairship.com/android-lib/reference/com/urbanairship/push/CustomPushNotificationBuilder.html

    0 讨论(0)
  • 2021-02-06 03:34

    Create a pending Intent to start the activity and set it in notification using setLatestEventInfo.

    Example:

      Context context = getApplicationContext();
    CharSequence contentTitle = "My notification";
    CharSequence contentText = "Hello World!";
    Intent notificationIntent = new Intent(this, MyClass.class);
    PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);
    notification.setLatestEventInfo(context, contentTitle, contentText, contentIntent);
    

    More info can be found here

    0 讨论(0)
  • 2021-02-06 03:39

    you have to call pendingIntent before call .setAutoCancel(true);

    look at my builder :

        NotificationCompat.Builder builder = new NotificationCompat.Builder(getApplicationContext(),channel_id).setSmallIcon(R.drawable.logo).setSound(uri).setVibrate(new long[]{1000,1000,1000,1000,1000})
                .setOnlyAlertOnce(true).setContentIntent(pendingIntent).setAutoCancel(true);
    
    0 讨论(0)
提交回复
热议问题