OneSignal:在某些页面(路线)上隐藏响铃按钮

时间:2018-11-14 11:25:16

标签: angular typescript onesignal

我有一个SPA(angular v.5)应用程序。我正在通过CDN导入oneSignal。我必须在某些路线(页面)中隐藏一个信号的响铃图标。我尝试过这样的事情:

...
const oneSignal = window.OneSignal
try{
oneSignal.init({
/* My config */
}).then(() => {
  this.displayButton$.subscribe(value => {
    if (value) {
      oneSignal.notifyButton.launcher.show();
    } else {
      oneSignal.notifyButton.launcher.hide();
    }
  });
})
} catch(err) {
... 

此解决方案适用于除Safari(v。12 MacOS)以外的所有浏览器。发生这种情况是因为在野生动物园oneSignal.notifyButton等于null。我在文档中找不到这些showhide方法。我在oneSignal代码中找到了它们。我以为可能是因为缺少一些polyfill,但我坚持了这个想法。

如果有人可以帮助我,或者提供其他解决方案以在某些页面上隐藏此提示。我会很感激。

1 个答案:

答案 0 :(得分:0)

最好订阅当前URL,并在此基础上切换您的响铃图标。例如

在您的全球服务中,您拥有代码:

this.router.events.subscribe((ev) => {
  if (this.router.url.includes('someURL')) {
    this.isBellIconShown = false;
  } else {
    this.isBellIconShown = true;
  }
}

然后您可以使用isBellIconShown进行切换