我想通过使用通知中的标题直接打开特定片段。
在我的 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);
}
由于某种原因它不起作用。如何收听通知并打开特定片段?
答案 0 :(得分:0)
我分享的代码实际上是有效的,但我使用了 mainFragment 中的第二部分而不是 mainActivity。