Приложение didFinishLaunchingWithOption: обнаружение запуска приложения после входа в регион iBeacon
Приложение, которое не было запущено, запускается iOS при входе в регион iBeacon. Первый вызванный метод - (BOOL) application: (UIApplication *) application didFinishLaunchingWithOptions: (NSDictionary *) launchOptions. Поскольку причина запуска может отличаться, я хотел бы иметь возможность определить из параметров запуска, был ли запуск вызван введением определенного (того, который я отслеживал) региона iBeacon или нет. Это возможно?
Я нашел следующее из документации ApplicationDelegate, но я не уверен, что это правильный вариант, поскольку в нем нет прямого упоминания о iBeacons.
UIApplicationLaunchOptionsBluetoothCentralsKey Наличие этого ключа указывает на то, что приложение ранее имело один или несколько объектов CBCentralManager и было повторно запущено системой Bluetooth для продолжения действий, связанных с этими объектами. Значением этого ключа является объект NSArray, содержащий один или несколько объектов NSString.
Каждая строка в массиве представляет идентификатор восстановления для объекта центрального менеджера. Это та же строка, которую вы присвоили ключу CBCentralManagerOptionRestoreIdentifierKey, когда ранее инициализировали объект центрального менеджера. Система предоставляет идентификаторы восстановления только для центральных администраторов, которые имели активные или ожидающие подключения периферийных устройств или сканировали периферийные устройства.
Доступный в iOS 7.0 и позже.
1 ответ
Чтобы узнать, запустило ли приложение ваше приложение, проверьте наличие UIApplicationLaunchOptionsLocationKey
, Это не скажет вам, какой CLBeaconRegion
запись запустила ваше приложение. Для этого вы должны ждать следующего didEnterRegion
и проверьте переданное значение.