e。$ OneSignal.on不是Nuxtjs PWA的功能-OneSignal

时间:2020-04-19 14:30:18

标签: vue.js nuxt.js progressive-web-apps onesignal

我正在使用 @ nuxtjs / pwa @ nuxtjs / onesignal 。 我在安装的 subscriptionChange 事件的监听器上遇到问题。 localhost 可以很好地工作, 问题发生在生产上。

mounted() {
  let self = this;
  this.$OneSignal.push(() => {
  self.$OneSignal.on('subscriptionChange', (isSubscribed) => {
    if (isSubscribed) {
      self.$OneSignal.getUserId().then((deviceId) => {
        self.addDeviceId(deviceId)
      });
     }
    });
  });
}

关于生产错误: enter image description here

谢谢并感谢。

2 个答案:

答案 0 :(得分:2)

window.OneSignal = window.OneSignal || []
    window.OneSignal.push(() => {
      window.OneSignal.getUserId(async (userId) => {
        await this.$store.dispatch(
          'Authenticated/overview/updatePushID',
          userId
        )
      })
    })

无论是在本地还是在生产上,这对我来说都是工作

答案 1 :(得分:1)

幸运的是,几小时前我遇到了这些问题,您需要使用全局窗口方法访问Onesignal

window.OneSignal = window.OneSignal || []
window.OneSignal.push(() => {
  window.OneSignal.on('subscriptionChange', (isSubscribed) => {
    if (isSubscribed) {
      window.OneSignal.getUserId().then((deviceId) => {
        self.addDeviceId(deviceId)
      });
    }
  });
})