UNLocationNotificationTrigger не запускается
Я пытаюсь создать уведомление, которое срабатывает при входе в регион с помощью UNNotificationLocationTrigger
, Я реализовал это так:
let destination = //destination is added by user through interface//
let notification = UNMutableNotificationContent()
notification.title = "You've reached your destination"
notification.body = "Some"
notification.sound = UNNotificationSound.default()
let destRegion = CLCircularRegion(center: destination, radius: 1000.0, identifier: "DistanceToDestination")
destRegion.notifyOnEntry = true
let trigger = UNLocationNotificationTrigger(region: destRegion, repeats: false)
let request = UNNotificationRequest(identifier: "destAlarm", content: notification, trigger: trigger)
UNUserNotificationCenter.current().add(request, withCompletionHandler: { error in
if error == nil {
print("Successful notification")
} else {
print(error ?? "Error")
}
})
Я попробовал это на реальном устройстве и гулял вокруг. Это работало 2 раза отлично, когда я вошел в область (я проверил это с картой и областью как наложение круга на карте). Но после этого все остальные попытки потерпели неудачу.
РЕДАКТИРОВАТЬ: Для тех, кто читает комментарии. Это не работает снова. Так что это кажется довольно противоречивым. Если кто-то знает, если это ошибка или знает, как ее исправить, я был бы очень признателен.
1 ответ
Во-первых, вы должны вызвать locationmanager.startupdatinglocation Во-вторых, вы должны изменить триггер так, чтобы Repeats = true