【问题标题】:How can I decode Unity's iOS device Token for Push Notifications?如何解码 Unity 的 iOS 设备令牌以进行推送通知?
【发布时间】:2017-09-29 17:11:41
【问题描述】:

我正在为 iOS 实现 Unity 的 Notification Service

我认为我的实施没有问题。

这就是我的注册方式:

NotificationServices.RegisterForNotifications(NotificationType.Badge | 
NotificationType.Alert | NotificationType.Sound, true);

我的功能中也启用了推送通知。

为了获取设备令牌,我使用NotificationServices.deviceToken

DeviceToken 的问题是它返回一个byte[],我不知道如何解码它。 我尝试了几种方法,但唯一能让我读懂的方法如下:

byte[] token = NotificationServices.deviceToken;
Debug.Log(System.BitConverter.ToString(token).Replace("-", ""));
Debug.Log(Convert.ToBase64String(token));
  • 第一个方法返回我:348CDFAE308F9107A3DB0807CC363BBB01DEC33008E9F474A9A81D57D039D245,如果没有替换,它将是34-8C-DF-AE-30-8F-91-07-A3-DB-08-07-CC-36-3B-BB-01-DE-C3-30-08-E9-F4-74-A9-A8-1D-57-D0-39-D2-45
  • 第二种方法返回我:cFXd3wLN0aCOpx7vn9pwDlJ24W32m9WO3A+WY28G4Zs=

BUT,这里是有趣的部分,如果我修改Unity在编译didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken时生成的方法,用下面的例子:

NSString *token;
token = [deviceToken description];
NSLog(@"Token: %@", token);

我得到以下结果: Token: <7055dddf 02cdd1a0 8ea71eef 9fda700e 5956e16d 8e9bd54e dc0f9263 6f03e19b>

我尝试使用我拥有的所有令牌发送推送通知,但它们都不起作用。

所以,我的问题是,来自 Unity,如何正确解码 deviceToken 以发送推送通知?

谢谢 =)

【问题讨论】:

  • @Programmer UTF8: pU���Ѡ�����pRv�m��Վ��co�� Default: pU���Ѡ�����pRv�m��Վ��co��

标签: c# ios unity3d encoding push-notification


【解决方案1】:

我发现是第一种方法:

byte[] token = NotificationServices.deviceToken;
return BitConverter.ToString(token).Replace("-", "");

Unity 以大写字母为我提供所有内容,但在尝试推送通知时它起作用了(看起来 iOS 不区分大写字母)。我尝试使用生产通知测试开发版本时出错。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-29
    • 1970-01-01
    • 2010-11-23
    相关资源
    最近更新 更多