天天看点

Xamarin.iOS推送deviceToken获取

deviceToken获取方法在Classic API工程中采用获取指针类型的方式读取字符串:

var deviceTokenString = (NSString)ObjCRuntime.Runtime.GetNSObject (Messaging.intptr_objc_msgSend (deviceToken.Handle, new Selector ("description").Handle));  
           

升级Unified API后,【Messaging.intptr_objc_msgSend】已无法使用,看原有代码获取方式,实际是通过Selector对象的isa指针找到【description】属性值,因此可简单读取:

var deviceTokenString = deviceToken.Description;
           

也可以考虑NSData与NSString的数据类型转换,但这种方式还没测试成功;

最后,deviceTokenString的格式是<xxxx xxxx>,需要对相应字符进行处理:

<span style="font-size:14px;">var deviceTokenString =  deviceTokenString .Replace ("<", "").Replace (">", "").Replace (" ", "");</span>