将设备令牌发送到服务器
我已经阅读了很多这方面的教程,我只是想知道这是否是正确的方法,
- (void)application:(UIApplication*)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken
{
NSLog(@"My token is: %@", deviceToken);
NSString* newToken = [deviceToken description];
newToken = [newToken stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"<>"]];
newToken = [newToken stringByReplacingOccurrencesOfString:@" " withString:@""];
NSString *urlString = [NSString stringWithFormat:@"http://myhost.com./filecreate.php?token=%@",newToken];
NSURL *url = [[NSURL alloc] initWithString:urlString];
NSURLRequest *urlRequest = [NSURLRequest requestWithURL:url];
NSData *urlData;
NSURLResponse *response;
urlData = [NSURLConnection sendSynchronousRequest:urlRequest returningResponse:&response error:nil];
}
任何建议都非常受欢迎。
- (void)application:(UIApplication*)application didRegisterForRemoteNotificationsWithDeviceToken:(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]];
}
NSString *urlString = [NSString stringWithFormat:@"http://myhost.com/filecreate.php?token=%@",token];
NSURL *url = [[NSURL alloc] initWithString:urlString];
NSURLRequest *urlRequest = [NSURLRequest requestWithURL:url];
NSData *urlData;
NSURLResponse *response;
urlData = [NSURLConnection sendSynchronousRequest:urlRequest returningResponse:&response error:nil];
}
我的应用程序可以使用这两种代码,但是正确的方法是什么?
I have read a lot of tutorials for this and i just wanted ti know if this is right way to do this
- (void)application:(UIApplication*)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken
{
NSLog(@"My token is: %@", deviceToken);
NSString* newToken = [deviceToken description];
newToken = [newToken stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"<>"]];
newToken = [newToken stringByReplacingOccurrencesOfString:@" " withString:@""];
NSString *urlString = [NSString stringWithFormat:@"http://myhost.com./filecreate.php?token=%@",newToken];
NSURL *url = [[NSURL alloc] initWithString:urlString];
NSURLRequest *urlRequest = [NSURLRequest requestWithURL:url];
NSData *urlData;
NSURLResponse *response;
urlData = [NSURLConnection sendSynchronousRequest:urlRequest returningResponse:&response error:nil];
}
any advices are more then welcomed.
- (void)application:(UIApplication*)application didRegisterForRemoteNotificationsWithDeviceToken:(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]];
}
NSString *urlString = [NSString stringWithFormat:@"http://myhost.com/filecreate.php?token=%@",token];
NSURL *url = [[NSURL alloc] initWithString:urlString];
NSURLRequest *urlRequest = [NSURLRequest requestWithURL:url];
NSData *urlData;
NSURLResponse *response;
urlData = [NSURLConnection sendSynchronousRequest:urlRequest returningResponse:&response error:nil];
}
My application works with both codes, but what's the right way?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
正如mja在评论中所说,最好添加错误恢复机制(如果请求失败,您将丢失令牌)并使用异步请求(在后台发送令牌)
在您的AppDelegate.m中:
发送令牌创建新类(或使用现有类之一):
DataUpdater.h
DataUpdater.m
然后您可以在互联网连接出现时、或定期或在 < b>-(void)viewDidLoad 或 -(void)viewWillAppear 方法
我的建议:
1)我使用 AFNetworking 发送异步请求并检查服务器 JSON 响应
2) 有时最好使用 Parse 等服务来处理推送通知
As mja said in comments, it's better to add error recovery mechanism (if the request fails you will lose your token) and use asynchronous request (send token in background)
In your AppDelegate.m:
To send token create new class (or use one of existing):
DataUpdater.h
DataUpdater.m
Then you can call [DataUpdater sendUserToken]; in your controllers when internet connection appears, or periodically, or in -(void)viewDidLoad or -(void)viewWillAppear methods
My advises:
1) I use AFNetworking to send async request and check server JSON response
2) Some times it's better to use services such as Parse to work with push notifications
在 didFinishLaunchingWithOptions 方法中
完成上述代码行后,添加以下方法
In didFinishLaunchingWithOptions method
After doing above lines of code ,add the method below