Приложение для запуска геопоминаний
-
12-12-2019 - |
Вопрос
Я подумываю о приложении, которое использовало бы ГЕО-напоминания (те, что добавлены в iOS5, напоминают мне о местоположении, когда я уезжаю / прибываю).Но мне нужно использовать эту функцию (фактически, только используя местоположение), чтобы получить текущее местоположение и сравнить его с местоположением, определенным моим приложением, и проверить, совпадает ли это местоположение или нет.Если текущее и определенное местоположение совпадают, запустите мое приложение.
Возможно ли это?
Я надеюсь, вы поймете мою цель.Заранее спасибо
Решение
Пока вы сможете контролировать свое местоположение с фона, имейте в виду, он не будет автоматически запустить ваше приложение.Вы можете использовать что-то вроде локальных уведомлений, чтобы подсказать пользователю открывать приложение.Но запуск с фона автоматически не вариант.По крайней мере, не одобренный App Store Approved.
Другие советы
Проверка текущего региона и определенного региона выполняется автоматически, когда вы устанавливаете регион для мониторинга.Лучше всего начать с прочтения документации для CLLocationManagerDelegate
, особенно startMonitoringForRegion:
.То, что вы хотите сделать, называется "Геозонирование".Вы также можете найти более подробную информацию в разделе Руководство по информированию о местоположении.
Как 'm new to iPhone Development Я не знаю, как программно обедать приложение, но я могу помочь вам с триггером по прибытии на предопределенное местоположение.Вот код.
1: импортировать CORELOCATION. CRAMEWORK
2: в ViewController.h Поместить файл ниже кода
#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
.