在 ionic 3 中点击 One Signal 推送通知时如何导航到特定页面?
Posted
技术标签:
【中文标题】在 ionic 3 中点击 One Signal 推送通知时如何导航到特定页面?【英文标题】:how to navigate to specific page when tapped on One Signal push notification in ionic 3? 【发布时间】:2019-07-18 12:13:11 【问题描述】:我想在点击 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();
【问题讨论】:
【参考方案1】:我也将 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);
);
platform.ready 在 app.component.ts 上的所有内容,根据您的情况更改代码。
我用
let self = this
因为我猜 startInit 会收到一个回调,所以有必要这样做,我使用路由器在页面之间导航。
import Router from "@angular/router";
我的项目的结果,它的工作原理与应用程序外的点击通知相同。
希望对你有所帮助:)
【讨论】:
非常感谢,请告诉我您是如何使用 Angular 路由的?你在用离子 4 吗? 是的,我使用的是 ionic v4,但我想您只需要使用使用 Ionic v3 的路由器进行更改,抱歉,我无法共享企业的代码:(。 我尝试集成角度路由,但不幸的是 v3 不允许进行路由...请帮帮我以上是关于在 ionic 3 中点击 One Signal 推送通知时如何导航到特定页面?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Mobile 中获取 One Signal 唯一用户 ID?
ionic 3:在 android fcm.onNotification() 中,当应用程序处于后台时,点击通知时不会调用