Android OneSignal ,从通知中打开特定片段

时间:2021-01-30 20:06:46

标签: android onesignal

我想通过使用通知中的标题直接打开特定片段。

在我的 BaseApplication 类中,我尝试了此代码,并且能够根据需要设置标志。

   OneSignal.setLogLevel(OneSignal.LOG_LEVEL.VERBOSE, OneSignal.LOG_LEVEL.NONE);

        // OneSignal Initialization
        OneSignal.initWithContext(this);
        OneSignal.setAppId(ONESIGNAL_APP_ID);

        OneSignal.setNotificationOpenedHandler(result -> {
            Log.d("TAG", "notificationOpened: " + result.toString());

            if (result.getNotification().getTitle().toLowerCase().equals("first")) {
                fromNotifFlag = "first";
            } else if (result.getNotification().getTitle().toLowerCase().equals("second")) {
                fromNotifFlag = "second";
            }
        });

我使用这个标志在 MainActivity(onCreate) 中打开片段。

 if (BaseApplication.fromNotifFlag.equals("first")) {
            Navigation.findNavController(getCurrentFocus()).navigate(R.id.action_mainfragment_to_secondFragment);
        }

        if (BaseApplication.fromNotifFlag.equals("second")) {
            Navigation.findNavController(getCurrentFocus()).navigate(R.id.action_mainfragment_to_secondFragment);
        }

由于某种原因它不起作用。如何收听通知并打开特定片段?

1 个答案:

答案 0 :(得分:0)

我分享的代码实际上是有效的,但我使用了 mainFragment 中的第二部分而不是 mainActivity。