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