注册苹果推送通知 - 如何通过DEVTOKEN与HTTP?
-
16-09-2019 - |
题
在iPhone推送通知的文档,他们有一个代码段,其中它们将覆盖其接收设备令牌的UIApplication方法 -
- (void)application:(UIApplication *)app didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)devToken {
const void *devTokenBytes = [devToken bytes];
self.registered = YES;
[self sendProviderDeviceToken:devTokenBytes]; // custom method
}
我的问题是,当我实现我自己的自定义方法,我怎么使用devTokenBytes?
我需要创建一个HTTP请求,使用NSURLConnection的(我想),这将令牌移交给我的服务器端提供的应用程序。我得到的那部分,但我不知道如何devTokenBytes添加到请求?我的第一反应是用字节来创建一个String对象,但是当我尝试使用NSASCIIStringEncoding我得到字符的怪异混乱得一塌糊涂。我看到的NSData的“字节”方法的返回类型是一个指针,但我不知道该怎么办。什么是把这个令牌到请求的正确方法是什么?
该文档还详细介绍 - “他应用程序应该与它的供应商连接,并通过它由此看来,以二进制格式进行编码。”但我不知道如何处理事情以这种方式进行编码。
解决方案 2
好像处理这个的最简单的方法是从NSData的的“说明”的方法使用的返回值。它会返回一个字符串,你可以用一个位以获得一个64字符表示。
其他提示
我还没有尝试过了还没有,但我的第一个猜测是看Base64编码的二进制数组编码成可以为您所查询的查询参数传递7位干净的字符串。
您也可以发布数据到一个URL来代替,但我认为编码会更容易些。
林不知道如果这是你在寻找:
deviceTokenString = [[[[[deviceToken description]
stringByReplacingOccurrencesOfString: @"<" withString: @""]
stringByReplacingOccurrencesOfString: @">" withString: @""]
stringByReplacingOccurrencesOfString: @" " withString: @""] retain];
不隶属于 StackOverflow