首页 > 移动平台 > 详细

Xamarin.iOS iOS13 获取DeviceToken

时间:2019-10-23 12:14:01      阅读:309      评论:0      收藏:0      [点我收藏+]

Xamarin.iOS iOS13 获取DeviceToken

随着苹果iOS13系统的发布,DeviceToken的获取方式发生了一定的变化。

iOS13之前获取DeviceToken方法


public override void RegisteredForRemoteNotifications (
UIApplication application, NSData deviceToken)
{
    // Get current device token
    var DeviceToken = deviceToken.Description;
    if (!string.IsNullOrWhiteSpace(DeviceToken)) {
        DeviceToken = DeviceToken.Trim('<').Trim('>');
    }
}

这段代码运行在 iOS 13 上已经无法获取到准确的DeviceToken字符串了,iOS 13 通过deviceToken.Description获取到的内容已经变了。

{length = 32, bytes = 0x14b54623 58494431 974ecc27 f44b1fdb ... 1dc9bc64 9d334520 }

iOS13之后获取DeviceToken方法

public override void RegisteredForRemoteNotifications(UIApplication application, NSData deviceToken)
        {
            byte[] dataBytes = new byte[deviceToken.Length];
            System.Runtime.InteropServices.Marshal.Copy(deviceToken.Bytes, dataBytes, 0, Convert.ToInt32(deviceToken.Length));
            StringBuilder builder = new StringBuilder();
            foreach (var b in dataBytes)
            {
                builder.AppendFormat("{0:X2}", b);
            }
            DeviceToken = builder.ToString();
        }

经过以上处理后:

3FCF3268B7FCEF9C550F92D84632525F623B5A6C8BB3349B1F3845BB95B41992

如此即可正常获取DeviceToken啦。

Xamarin.iOS iOS13 获取DeviceToken

原文:https://www.cnblogs.com/devin_zhou/p/11725267.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!