gpt4 book ai didi

ios - 如果位置更改或不使用 AFN 3,如何定期向服务器发送后台位置?

转载 作者:行者123 更新时间:2023-11-29 00:58:33 24 4
gpt4 key购买 nike

我是 iOS 应用程序开发的新手。我将使用 AFNetworking 3.0。我想在后台更新位置并将其发送到服务器。在将其发送到服务器时,我想要条件:1)如果位置没有改变我想调用服务sendlocation12)如果位置改变我想调用服务sendlocation2。位置改变(接近约50米)。请帮我....我尝试了以下代码----在ViewDidLoad中:

(void)viewDidLoad {
[super viewDidLoad];

locationManager = [[CLLocationManager alloc] init];
locationManager.distanceFilter = kCLDistanceFilterNone;
locationManager.desiredAccuracy = kCLLocationAccuracyBest;
[locationManager startUpdatingLocation];

[locationManager requestAlwaysAuthorization];



float Lat = locationManager.location.coordinate.latitude;
float Long = locationManager.location.coordinate.longitude;
NSLog(@"Lat : %f Long : %f",Lat,Long);}

我要检查,如果我从服务器收到的响应是登录成功,那么只将位置发送到服务器,这就是我使用 if-else 语句的原因。如下所示:

if ([_str isEqualToString:@"Login Success"]) {

UIAlertController *Loginalert= [UIAlertController

alertControllerWithTitle:@"Login Success"

message:@"This app is going to close now"

preferredStyle:UIAlertControllerStyleAlert];


UIAlertAction* yesButton = [UIAlertAction

actionWithTitle:@"Ok"

style:UIAlertActionStyleDefault

handler:^(UIAlertAction * action)

{
if () {
[self sendlocation1];
} else {
[self sendlocation2];
}

[Loginalert dismissViewControllerAnimated:YES completion:nil];



}];

[Loginalert addAction: yesButton];




} else {

NSLog(@"Something Wrong");

最后

(void)sendlocation1{
}

(void)sendlocation2{
}

请帮帮我...如何检查位置是否改变? ...我应该在 if 条件中写什么并将其发送到服务器。

最佳答案

第一步

 (void)viewDidLoad {
[super viewDidLoad];

locationManager = [[CLLocationManager alloc] init];
//set the amount of metres travelled before location update is made
[locationManager setDistanceFilter:50];
locationManager.desiredAccuracy = kCLLocationAccuracyBest;
[locationManager startUpdatingLocation];

[locationManager requestAlwaysAuthorization];

// call the timer with 5 minutes cap using 5 * 60 = 300
[NSTimer scheduledTimerWithTimeInterval:300.0f target:self selector:@selector(sendlocation1) userInfo:nil repeats:YES];

第二步

每 50 米更换设备此方法称为:

 -(void)locationManager:(CLLocationManager *)manager
didUpdateToLocation:(CLLocation *)newLocation
fromLocation:(CLLocation *)oldLocation
{
NSLog(@"%f",newLocation.coordinate.latitude);

NSLog(@"%f",newLocation.coordinate.longitude);
CLLocationDistance meters = [newLocation distanceFromLocation:oldLocation];
if(meters >=50)
{
// call webservice for location is updated
[self sendlocation1];
}else
{
// call normal method
[self webservice_UpdateLocation];
}
}
}

-(void)webservice_UpdateLocation
{
if ([_str isEqualToString:@"Login Success"]) {

UIAlertController *Loginalert= [UIAlertController

alertControllerWithTitle:@"Login Success"

message:@"This app is going to close now"

preferredStyle:UIAlertControllerStyleAlert];


UIAlertAction* yesButton = [UIAlertAction

actionWithTitle:@"Ok"

style:UIAlertActionStyleDefault

handler:^(UIAlertAction * action)

{



[self sendlocation2];


[Loginalert dismissViewControllerAnimated:YES completion:nil];



}];

[Loginalert addAction: yesButton];




} else {

NSLog(@"Something Wrong");
}

关于ios - 如果位置更改或不使用 AFN 3,如何定期向服务器发送后台位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37315226/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com