2016-11-21 66 views

回答

1

即使應用程序未運行,位置事件(與本示例中的信標相關)的處理方式與其他任何應用程序啓動事件的處理方式相同。每次手機在應用程序終止時進入或退出某個區域時,都會自動啓動。

應用中:didFinishLaunchingWithOptions:方法(AppDelegate類的)稱爲與UIApplicationLaunchOptionsLocationKey鍵存在於launchOptions參數。

當您驗證此密鑰存在時(因此位置是您的應用程序啓動的原因),您應該創建ESTBeaconManager類的新實例,將委派設置爲AppDelegate對象(或任何其他正在以ESTBeaconManagerDelegate工作並且之前創建的對象發生此事件)並開始監控。你傳遞給startMonitoringForRegion

地區:方法並不重要,因爲ESTBeaconManager代表將獲得最新的區域信息。您可以選擇您的應用在iOS中註冊的任何應用。監控撤銷後,應用程序將自動接收beaconManager:didEnterRegionbeaconManager:didExitRegion:方法中最近進入/退出的地區事件。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    if([launchOptions objectForKey:@"UIApplicationLaunchOptionsLocationKey"]) 
    { 
    self.beaconManager = [ESTBeaconManager new]; 
    self.beaconManager.delegate = self; 
    // don't forget the NSLocationAlwaysUsageDescription in your Info.plist 
    [self.beaconManager requestAlwaysAuthorization]; 
    [self.beaconManager startMonitoringForRegion:[[ESTBeaconRegion alloc] 
                initWithProximityUUID:ESTIMOTE_PROXIMITY_UUID 
                identifier:@"AppRegion"]]; 
    } 
    return YES; 
} 

-(void)beaconManager:(ESTBeaconManager *)manager didEnterRegion:(ESTBeaconRegion *)region 
{ 
    UILocalNotification *notification = [[UILocalNotification alloc] init]; 
    notification.alertBody = @"Enter region"; 
    notification.soundName = UILocalNotificationDefaultSoundName; 

    [[UIApplication sharedApplication] presentLocalNotificationNow:notification]; 
} 

-(void)beaconManager:(ESTBeaconManager *)manager didExitRegion:(ESTBeaconRegion *)region 
{ 
    UILocalNotification *notification = [[UILocalNotification alloc] init]; 
    notification.alertBody = @"Exit region"; 
    notification.soundName = UILocalNotificationDefaultSoundName; 

    [[UIApplication sharedApplication] presentLocalNotificationNow:notification]; 
} 
+0

這些方法已經被添加,但仍是其無法正常工作。 – Megha

+0

然後發生什麼是有任何錯誤。具體 –

+0

謝謝!它運作良好。 – Megha

相關問題