我正在尝试为MonoTouch实现推送通知,但我无法在任何地方找到这样的样本.我的问题是尝试将deviceID读入.NET字符串.
下面的输出只是很多问号所以我在这里做错了.
任何帮助将不胜感激!
public override void RegisteredForRemoteNotifications (UIApplication application, NSData deviceToken)
{
Console.WriteLine("Converting device ID...");
NSString s = NSString.FromData(deviceToken, NSStringEncoding.UTF8);
Console.WriteLine("DEVICE ID IS: " + s);
s = NSString.FromData(deviceToken, NSStringEncoding.ASCIIStringEncoding);
Console.WriteLine("DEVICE ID IS: " + s);
s = NSString.FromData(deviceToken, NSStringEncoding.Unicode);
Console.WriteLine("DEVICE ID IS: " + s);
}
Run Code Online (Sandbox Code Playgroud)
在MonoTouch中有一个隐式转换运算符.
所以你只需:
NSString s = NSString.FromData(deviceToken, NSStringEncoding.UTF8);
string csstring = s;
// done
Run Code Online (Sandbox Code Playgroud)
或者,您可以使用NSString的ToString()方法:
NSString s = NSString.FromData(deviceToken, NSStringEncoding.UTF8);
string csstring = s.ToString();
Run Code Online (Sandbox Code Playgroud)
这是相关文档.
这是一篇很棒的文章,展示了如何使用 MonoTouch 进行推送通知:
这是执行您想要的操作的代码片段:
var str = (NSString)Runtime.GetNSObject (
Messaging.intptr_objc_msgSend (deviceToken.Handle, new Selector("description").Handle));
var deviceTokenString = str.ToString ().Replace ("<", "").Replace (">", "").Replace (" ", "");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9359 次 |
| 最近记录: |