Aplicativo de lançamento de lembretes GEO
-
12-12-2019 - |
Pergunta
Estou pensando em um aplicativo que usaria os lembretes GEO (aqueles adicionados no iOS5, Lembre-me em um local quando eu sair/chegar).Mas preciso usar esse recurso (na verdade, usando apenas a localização) para obter a localização atual e compará-la com a localização definida pelo meu aplicativo e verificar se é o mesmo local ou não.Se a localização atual e definida forem iguais, inicie meu aplicativo.
Isso é possível?
Espero que você entenda meu objetivo.desde já, obrigado
Solução
Enquanto você poderá monitorar sua localização a partir do fundo, lembre-se, ele não será iniciado automaticamente seu aplicativo.Você pode usar algo como notificações locais para solicitar ao usuário abrir o aplicativo.Mas o lançamento do fundo automaticamente não é uma opção.Pelo menos não uma opção aprovada pela App Store.
Outras dicas
A verificação da região atual e da região definida é feita automaticamente quando você define uma região para monitorar.O melhor lugar para começar é lendo a documentação do CLLocationManagerDelegate
, especialmente startMonitoringForRegion:
.O que você deseja fazer é chamado de "Geofencing".Você também pode encontrar mais informações no Guia de reconhecimento de localização.
Como sou novo no desenvolvimento do iPhone, não sei como programar um aplicativo, mas posso ajudá-lo com o gatilho ao chegar em um local predefinido.aqui está o código.
1:importar CoreLocation.framework
2:no arquivo viewController.h coloque abaixo do código
#import <UIKit/UIKit.h>
#import <CoreLocation/CoreLocation.h>
@interface ViewController : UIViewController<CLLocationManagerDelegate>
@end
3:inviewController.m
#import "ViewController.h"
@interface ViewController (){
CLLocationManager *locationManager;
CLRegion *mexicoBoundary;
}
@end
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
locationManager = [[CLLocationManager alloc] init];
[locationManager setDelegate:self];
[locationManager setDistanceFilter:kCLDistanceFilterNone];
CLLocationCoordinate2D regionCords ;
//19.432608,-99.133208 lat, lon for mexico city
regionCords=CLLocationCoordinate2DMake(19.432608,-99.133208);
//5000 below, is in meters-radius
mexicoBoundary =
[[CLRegion alloc]initCircularRegionWithCenter:regionCords
radius:5000.0
identifier:@"mexico_Day"];
[locationManager startMonitoringForRegion:mexicoBoundary];
}
-(void)locationManager:(CLLocationManager *)manager didEnterRegion:(CLRegion *)region
{
NSLog(@"%@: %@", @"region entered", region.identifier);
}
-(void)locationManager:(CLLocationManager *)manager didExitRegion:(CLRegion *)region
{
NSLog(@"%@: %@", @"region exited", region.identifier);
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end