如何使用Objective C将推送通知和其他用户设置的设备令牌发送到服务器上的sql表

ecb*_*tln 8 mysql objective-c push-notification apple-push-notifications

理想情况下,我想使用POST将HTTP请求发送到包含设备令牌的推送通知服务器以及一些用户定义的设置.从那里我可以在服务器上设置一个php脚本来处理传入的数据并将其输入到sql表中.如果这是唯一的方法,我将如何从Objective C启动和HTTP请求?

Nat*_*ies 35

您首先需要将设备令牌转换为带有如下函数的十六进制字符串:

- (NSString*)stringWithDeviceToken:(NSData*)deviceToken {
  const char* data = [deviceToken bytes];
  NSMutableString* token = [NSMutableString string];

  for (int i = 0; i < [deviceToken length]; i++) {
    [token appendFormat:@"%02.2hhX", data[i]];
  }

  return [[token copy] autorelease];
}
Run Code Online (Sandbox Code Playgroud)

然后,您需要向您的服务器发出请求:

NSURL* url = [NSURL URLWithString:[NSString stringWithFormat:@"http://example.com/script.php?token=%@", DEVICE_TOKEN]];
NSMutableURLRequest* request = [[[NSMutableRequest alloc] initWithURL:url] autorelease];
NSURLConnection* connection = [NSURLConnection connectionWithRequest:request delegate: self];
Run Code Online (Sandbox Code Playgroud)


xha*_*han 10

其他方式:

NSString * tokenAsString = [[[deviceToken description] 
stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"<>"]] 
stringByReplacingOccurrencesOfString:@" " withString:@""];
Run Code Online (Sandbox Code Playgroud)