为什么Xamarin上的oneSignal中的玩家ID为空?仅限iOS

问题描述 投票:1回答:1

从Xamarin获取播放器ID时遇到了一个小问题。我正在Xamarin Forms中制作一个应用程序,它适用于Android,但是当我尝试在iOS上获取它时,字符串为空。

然后,当我想获取“ playerId”(我的变量)的值时,它为空。这仅发生在iOS中-当我在Android上执行此操作时,效果很好。显然,在使用OneSignal密钥注册应用程序之前,我的设备(iPhone)已在OneSignal页面上注册。我需要获取playerId才能将其保存在我的数据库中。

这是我的代码:

string playerId="";

    OneSignal.Current.IdsAvailable(new Com.OneSignal.Abstractions.IdsAvailableCallback((playerID, pushToken) =>
                                {
                                    playerId = playerID;
                                }));
c# xamarin xamarin.forms xamarin.ios onesignal
1个回答
0
投票

我确定您已经摆脱了这个问题,但是我面临着同样的事情。

经过一番挖掘之后,我发现显然您的应用启动与OneSignal SDK执行IdsAvailable回调之间存在相当长的延迟(毕竟是回调,因此没有任何保证,您仍然可以在该例程开始运行之前)

在我的设备上,对于Android来说,这几乎是即时的,对于iOS,从我的应用启动到ID可用大约需要2秒钟,因此,我只需要考虑以下事实:播放器ID可能不可用当我的第一个视图加载时可用。

© www.soinside.com 2019 - 2024. All rights reserved.