Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 移动设备未向OneSignal注册的原因可能是什么?_Javascript_React Native_Onesignal - Fatal编程技术网

Javascript 移动设备未向OneSignal注册的原因可能是什么?

Javascript 移动设备未向OneSignal注册的原因可能是什么?,javascript,react-native,onesignal,Javascript,React Native,Onesignal,我们有一个小应用程序,我们昨天开始对大约50人进行alpha测试。这是一个本地应用程序。OneSignal可以处理推送通知,这些是充分利用应用程序的必要条件。对于80%的人来说,它工作得很好。他们的设备得到注册,我将用户ID存储在数据库中,并发送和接收通知。对于其他人,我甚至无法获得用户ID 所有用户都有完全相同的应用程序,没有变体,因此OneSignal appId在那里绝对正确 我有下面的代码,在应用程序启动时执行。对于那些失败的用户,甚至不会调用registeronsignal函数。这真是

我们有一个小应用程序,我们昨天开始对大约50人进行alpha测试。这是一个本地应用程序。OneSignal可以处理推送通知,这些是充分利用应用程序的必要条件。对于80%的人来说,它工作得很好。他们的设备得到注册,我将用户ID存储在数据库中,并发送和接收通知。对于其他人,我甚至无法获得用户ID

所有用户都有完全相同的应用程序,没有变体,因此OneSignal appId在那里绝对正确

我有下面的代码,在应用程序启动时执行。对于那些失败的用户,甚至不会调用
registeronsignal
函数。这真是奇怪的行为。可能是一个信号中的错误

react-native-onesignal:v3.0.5


最后,我这方面确实犯了一个错误,因为事实上,当一个事件在侦听器连接之前被触发时,它将永远被错过。在我的应用程序中,我很早就开始收听
ids
事件,现在似乎对每个人都有效


但有点奇怪的是,
OneSignal.getPermissionSubscriptionState
不是一个事件,它应该调用回调以从中获取数据,而不管时间如何。很明显,在一个信号模块中有一些错误。也许下面也有一件事?我已将此方法的调用移动到我正在侦听的
ids
的同一点。做了两次测试,它确实显示每次都调用
ids
,但在某些情况下从未调用该方法的回调。

最后,我确实犯了一个错误,这仅仅是因为这样一个事实,即当在连接侦听器之前触发事件时,它将永远被错过。在我的应用程序中,我很早就开始收听
ids
事件,现在似乎对每个人都有效


但有点奇怪的是,
OneSignal.getPermissionSubscriptionState
不是一个事件,它应该调用回调以从中获取数据,而不管时间如何。很明显,在一个信号模块中有一些错误。也许下面也有一件事?我已将此方法的调用移动到我正在侦听的
ids
的同一点。做了两次测试后,确实显示每次都调用
ids
,但在某些情况下从未调用该方法的回调。

如果没有调用您的
RegisterOnSignal
,则表示
OneSignal.getPermissionSubscriptionState
由于某种原因失败。可能是互联网连接薄弱,或者实际上可能是一个bug。我认为最好的办法是联系OneSignal的支持部门。我在一个生产代码上调试了这个。但是,我现在可以确认调用了
registeronsignal
,但是从未调用来自
getPermissionSubscriptionState
的实际回调。我想联系支持是唯一剩下的选择。如果没有调用您的
RegisterOnSignal
,则意味着
OneSignal.getPermissionSubscriptionState
由于某种原因失败。可能是互联网连接薄弱,或者实际上可能是一个bug。我认为最好的办法是联系OneSignal的支持部门。我在一个生产代码上调试了这个。但是,我现在可以确认调用了
registeronsignal
,但是从未调用来自
getPermissionSubscriptionState
的实际回调。我想联系支持是唯一剩下的选择。
const alternateApproach = (device) => {
  log.debug('onesignal ids', device)
  this.activateOneSignal(device.userId, device)
}

const registerOneSignal = (status: SubscriptionStatus) => {
  log.debug('onesignal state', status)
  if (!status.userId) {
    OneSignal.addEventListener('ids', alternateApproach)
    return
  }
  this.activateOneSignal(status.userId)
}

OneSignal.getPermissionSubscriptionState(registerOnesignal)