1

进入 iBeacon 区域时,iOS 会启动未运行的应用程序。第一个调用的方法是- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions。由于启动原因可能不同,我希望能够从启动选项中检测到启动是否是由于进入特定(我正在监视的)iBeacon 区域。这可能吗?

我从 ApplicationDelegate 文档中找到了以下内容,但我不相信这是正确的,因为它没有直接提及 iBeacons。

UIApplicationLaunchOptionsBluetoothCentralsKey该键的存在表明该应用程序之前有一个或多个 CBCentralManager 对象,并由蓝牙系统重新启动以继续与这些对象关联的操作。这个键的值是一个包含一个或多个 NSString 对象的 NSArray 对象。

数组中的每个字符串代表中央管理器对象的恢复标识符。这与您之前初始化中央管理器对象时分配给 CBCentralManagerOptionRestoreIdentifierKey 键的字符串相同。系统仅为具有活动或未决外围设备连接或正在扫描外围设备的中央管理器提供恢复标识符。

在 iOS 7.0 及更高版本中可用。

4

1 回答 1

2

要查看信标检测是否启动了您的应用,请检查UIApplicationLaunchOptionsLocationKey. 这不会告诉您哪个CLBeaconRegion条目启动了您的应用程序。为此,您必须等待后续didEnterRegion并检查传递的值。

于 2015-11-06T11:54:26.930 回答