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