我想在点击 One Signal 发送的推送通知时打开特定页面。我尝试了多种方法,但没有找到任何解决方法! 这是我的代码。
我已经尝试了所有导航方式
// window["plugins"].OneSignal.sendTag("user_tag", "VIP");
if (jsonData.notification.payload.additionalData != null) {
let navigator: any = JSON.stringify(jsonData.notification.payload.additionalData.page);
alert(navigator);
alert(navigator == '"TodayspickPage"');
if (navigator == '"TodayspickPage"') {
//I TRIED THESE ALL WAYS
// this.nav.setRoot(TodayspickPage);
// this.rootPage=TodayspickPage;
// this.app.nav.push(TodayspickPage);
//this.nav.push(TodayspickPage);
}
}
};
window["plugins"].OneSignal
.startInit("47c084d5-**************437ca9f9bbd", "8324*******08")
.inFocusDisplaying(OneSignal.OSInFocusDisplayOption.Notification)
.handleNotificationOpened(notificationOpenedCallback)
.endInit();
最佳答案
我还使用 OneSignal 进行推送通知,我使用这种方式来实现:
initializeApp() {
this.platform.ready().then(() => {
let self = this;
var notificationOpenedCallback = async function(jsonData) {
switch (self.user.role) {
case "client":
self.router.navigate(["history-customer"]);
break;
case "provider":
self.router.navigate(["history-provider"]);
break;
default:
self.router.navigate(["history-customer"]);
}
};
window["plugins"].OneSignal.startInit(
"03b**************c7",
"1**********2"
)
.handleNotificationOpened(notificationOpenedCallback)
.endInit();
window["plugins"].OneSignal.setSubscription(true);
});
}
所有内容都在 app.component.ts 上的 platform.ready 上,根据您的情况更改代码。
我用
let self = this
因为我猜想 startInit 会收到回调,所以有必要这样做,并且我使用 Router 在页面之间导航。
import { Router } from "@angular/router";
我的项目的结果,其工作原理与应用程序外部的点击通知相同。
希望对您有所帮助:)
关于angular - 如何在 ionic 3 中点击 One Signal 推送通知时导航到特定页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57094197/