我在Ionic项目中使用OneSignal。设备准备就绪时我正在初始化OneSignal:
window.plugins.OneSignal.setLogLevel({logLevel: 6, visualLevel: 4});
window.plugins.OneSignal.startInit(appId)
// Controls how OneSignal notifications will be shown when one is received while your app is in focus
.inFocusDisplaying(window.plugins.OneSignal.OSInFocusDisplayOption.None) // None means silent
.endInit();
// set OS tag to uid in case multiple users on same device
window.plugins.OneSignal.sendTag("uid", user.auth.uid);
});
如你所见,在init之后我需要发送一个标签。
我的问题是,当我第一次启动应用程序时,init正确完成但是sendTag似乎没有完成......(第二次启动时,sendTag已完成)。
但是我需要第一次完成sendTag ...
我认为可能是init还没有完成(或类似的东西)并且它阻止了sendTag的发生......
你知道这是否真的存在问题?你有什么建议吗?可能是一种了解init何时完成的方法(捕获OneSignal事件)......
**更新****
毕竟看起来像sendTag(为了这篇文章,我简化了我的代码)。但我真正的初步问题是在getTags'中调用sendTag。回调。
在endInit()之后立即执行以下代码:
window.plugins.OneSignal.getTags(function(tags) {
if (!tags) window.plugins.OneSignal.sendTag("uid", user.auth.uid);
});
有什么想法吗?