当进入iBeacon区域时,iOS会启动未运行的应用程序。调用的第一个方法是-(BOOL)应用程序:(UIApplication*)应用程序didFinishLaunchingWithOptions:(NSDictionary*)launchOptions。由于发射原因可能不同,我希望能够从发射选项中检测发射是否是由于进入特定的(我正在监测的)iBeacon区域。这可能吗?
我从ApplicationDelegate文档中找到了以下内容,但我不相信这是正确的,因为它没有直接提到iBeacons。
UIApplicationLaunchOptionsBluetoothCentralsKey此键表示应用程序以前有一个或多个CBCentralManager对象,并由蓝牙系统重新启动以继续操作与这些对象关联。此键的值是NSArray包含一个或多个NSString对象的对象。
数组中的每个字符串表示中央管理器对象。这是您分配给初始化时的CBCentralManagerOptionRestoreIdentifierKey键以前的中央管理器对象。该系统提供仅针对具有活动或挂起外围设备连接或正在扫描外围设备。
在iOS 7.0及更高版本中可用。
要查看信标检测是否启动了您的应用程序,请检查UIApplicationLaunchOptionsLocationKey
。这不会告诉你哪个CLBeaconRegion
条目启动了你的应用程序。为此,您必须等待后续的didEnterRegion
并检查传递的值。