Мне трудно понять, чего мне здесь не хватает, когда пользователь получает push-уведомление, а затем нажимает кнопку, чтобы увидеть его и перейти на нужную страницу в приложении, поэтому мой код икак это работает очень хорошо в IOS:
Так что, если приложение Android, я использую этот код ниже ... Я получаю содержимое и передаю его в функцию с именем handleOpenURL
if (application.android) {
application.on(application.launchEvent, (args) => {
try {
TnsOneSignal.startInit(application.android.context).setNotificationOpenedHandler(new TnsOneSignal.NotificationOpenedHandler({
// notificationOpened: function (result: com.onesignal.OSNotificationOpenResult) {
notificationOpened: function (result) {
const imovelAndroid = JSON.parse(result.stringify()).notification.payload.additionalData;
handleOpenURL(imovelAndroid);
}
})).init();
TnsOneSignal.setInFocusDisplaying(TnsOneSignal.OSInFocusDisplayOption.Notification);
TnsOneSignal.startInit(application.android.context).init();
}
catch (error) {
console.error('error', error);
}
});
}
Я на самом деле ввожу функцию ниже, но проблема в том, что при навигации она просто не работает:
function handleOpenURL(argImovel) {
const precoToNumber = +argImovel['imovel'].preco;
const precoFormated = Number(precoToNumber).toLocaleString("pt-PT", { minimumFractionDigits: 0 });
const navigationOptions = {
moduleName: "detail/detail-page",
context:{ //my context here which is big so i´m not putting it.
}
};
frameModule.topmost().navigate(navigationOptions);
}
Все работает, как и ожидалось в ios, предполагается получитьтолчок, и когда пользователь нажимает на него, приложение должно перейти на страницу сведений, где показано получение контента.
Чего мне не хватает?спасибо за ваше время, с уважением.
РЕДАКТИРОВАТЬ
Благодаря Manoj, я исправил проблему, добавив это в мою функцию handleOpenURL:
setTimeout(() => {
frameModule.topmost().navigate(navigationOptions);
}, 2);