我有一个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。我在文档中找不到这些show
和hide
方法。我在oneSignal代码中找到了它们。我以为可能是因为缺少一些polyfill,但我坚持了这个想法。
如果有人可以帮助我,或者提供其他解决方案以在某些页面上隐藏此提示。我会很感激。
答案 0 :(得分:0)
最好订阅当前URL,并在此基础上切换您的响铃图标。例如
在您的全球服务中,您拥有代码:
this.router.events.subscribe((ev) => {
if (this.router.url.includes('someURL')) {
this.isBellIconShown = false;
} else {
this.isBellIconShown = true;
}
}
然后您可以使用isBellIconShown
进行切换