iOS: Как истечь локальное уведомление с помощью триггера области?

У меня есть локальное уведомление о геозонности, настроенное следующим кодом:

func startMonitoring(annotation:MKAnnotation) { let region = CLCircularRegion(center: annotation.coordinate, radius: 10.0, identifier: "randomID") region.notifyOnExit = false let notification = UILocalNotification() notification.region = region notification.alertBody = "You got it!" notification.category = self.notificationCategory notification.soundName = "my_sound.wav" notification.userInfo = ["ID": "randomID"] UIApplication.sharedApplication().scheduleLocalNotification(notification) } 

Это отлично работает, но пользователь должен добраться до этого района в течение определенного срока, чтобы действие уведомления было доступно. Как я могу сделать уведомление НЕ гореть, если срок прошел?

В настоящее время у меня есть только разрешение «WhenInUse» для местоположения пользователя и предпочтет сохранить его таким образом.

Вам будет лучше контролировать CLCircularRegion вручную с помощью CLLocationManager, и когда ваше приложение будет уведомлено о том, что пользователь вошел в регион, проверьте, находится ли он в установленном сроке, и запишите свой UILocalNotification вручную.

См. Раздел « Using Regions to Monitor Boundary Crossings здесь: https://developer.apple.com/library/ios/documentation/CoreLocation/Reference/CLLocationManager_Class/index.html

Вы можете настроить фоновый setminimumbackgroundfetchinterval с помощью setminimumbackgroundfetchinterval и отменить запланированное уведомление, если оно истечет.

Это не на 100% надежнее, потому что вы не можете контролировать точное время, но это лучше, чем ничего.

  • Воспроизведение записанного звука в UILocalNotification
  • Звук локального оповещения не воспроизводится?
  • iOS - добавление настраиваемого звукового сигнала предупреждения
  • UILocalNotification не работает
  • Приложение для будильника в iOS
  • Метод didRangeBeacons не вызывается при отображении Off
  • Знайте, если уведомление iOS было уволено
  • Перезагрузка iPhone при добавлении нескольких локальных уведомлений более 1000
  • Расписание UILocalNotification на основе изменений основных данных
  • UILocalNotification оживляет дважды
  • нефиксированный repeatInterval в UILocalNotification
  • Interesting Posts

    Преобразование NSString в Float – добавляет в десятичные места?

    Цвет настройки SKSpriteNode с UIColor

    Проблема с привязкой Monotouch к Cordova (исключение NSInvalidArgumentException)

    Как кэшировать изображения только на диске с помощью Kingfisher?

    Приложение iOS зависает при загрузке пользовательского информационного окна для маркера на Картах Google

    Изменение цвета позади приложения при вращении

    Запуск приложения Youtube из другого приложения не работает в ios 9

    UICollectionView, созданный программным способом, не прокручивает

    NSPersistentStoreCoordinator выбрасывает EXC_BAD_ACCESS при освобождении объекта NSManagedObject после прочтения определенного NSManagedProperty

    Нарисуйте содержимое существующего PDF-документа на отдельной странице

    Как издеваться над вызовом AJAX с помощью NSURLProtocol?

    Покрытие кода с нескольких устройств или версий iOS

    Прокси-сервер UIAppearance для пользовательских объектов

    Как воспроизвести зашифрованное HLS-видео AES-128 в AVPlayer

    Создайте 360-градусный интерактивный просмотр продукта

    Давайте будем гением компьютера.