Я получаю уведомления с помощью OneSignal, если мое приложение было в фоновом режиме, и я нажимаю на пришедшее уведомление, приложение открывается нормально, как я хотел, чтобы перейти к запрошенной активности без каких-либо проблем!Но если приложение не было запущено, я имею в виду полностью закрытое, после нажатия на уведомление ничего не происходит вообще!приложение не открывается!уведомление уходит, не открывая приложение!любой совет?
Вот код, который я использую для обработки уведомлений OneSignal
private class NotificationOpenedHandler implements OneSignal.NotificationOpenedHandler {
// This fires when a notification is opened by tapping on it.
@Override
public void notificationOpened(OSNotificationOpenResult result) {
OSNotificationAction.ActionType actionType = result.action.type;
JSONObject data = result.notification.payload.additionalData;
String launchUrl = result.notification.payload.launchURL; // update docs launchUrl
String body = result.notification.payload.body; // update docs launchUrl
String customKey;
String openURL = null;
Object activityToLaunch = MainActivity.class;
if (data != null) {
customKey = data.optString("customkey", null);
openURL = data.optString("openURL", null);
if (customKey != null)
Log.i("OneSignalExample", "customkey set with value: " + customKey);
if (openURL != null)
Log.i("OneSignalExample", "openURL to webview with URL value: " + openURL);
}
if (actionType == OSNotificationAction.ActionType.ActionTaken) {
Log.i("OneSignalExample", "Button pressed with id: " + result.action.actionID);
if (result.action.actionID.equals("id1")) {
Log.i("OneSignalExample", "button id called: " + result.action.actionID);
activityToLaunch = Notifications.class;
} else
Log.i("OneSignalExample", "button id called: " + result.action.actionID);
}
// The following can be used to open an Activity of your choice.
Intent toActivity = new Intent(MainActivity.this, Notifications.class);
toActivity.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT | Intent.FLAG_ACTIVITY_NEW_TASK);
toActivity.putExtra("openURL", launchUrl);
toActivity.putExtra("body", body);
Log.i("OneSignalExample", "openURL = " + launchUrl);
//my Code
String message;
SharedPreferences sharedPreferences = getSharedPreferences(NOTES, Context
.MODE_PRIVATE);
String jsonLink = sharedPreferences.getString(NOTES_LINKS, null);
String jsonTitle = sharedPreferences.getString(NOTES_TITLE, null);
if (jsonLink != null && jsonTitle != null) {
Gson gson = new Gson();
ArrayList<String> linkList = gson.fromJson(jsonLink, new TypeToken<ArrayList<String>>() {
}.getType());
ArrayList<String> titleList = gson.fromJson(jsonTitle, new TypeToken<ArrayList<String>>() {
}.getType());
if (linkList.contains(launchUrl)) {
message = "Notification Exist!";
Log.i("Notifications","Notification Exist!");
} else {
linkList.add(launchUrl);
titleList.add(body.trim());
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString(NOTES_LINKS, new Gson().toJson(linkList));
editor.putString(NOTES_TITLE, new Gson().toJson(titleList));
editor.apply();
Log.i("Notifications","Notification Stored!");
}
} else {
ArrayList<String> linkList = new ArrayList<>();
ArrayList<String> titleList = new ArrayList<>();
linkList.add(launchUrl);
titleList.add(body.trim());
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString(NOTES_LINKS, new Gson().toJson(linkList));
editor.putString(NOTES_TITLE, new Gson().toJson(titleList));
editor.apply();
Log.i("Notifications","Stored");
}
// startActivity(intent);
startActivity(toActivity);
}
}