Скидка не применяется, когда приложение находится в фоновом режимеIOS

Программируем под IOS
Ответить
Anonymous
 Скидка не применяется, когда приложение находится в фоновом режиме

Сообщение Anonymous »

Когда мое приложение находится в фоновом режиме, я отправляю push -уведомление и хочу, чтобы пользователь получил скидку 50%. К сожалению, скидка не применяется, когда приложение находится в фоновом режиме. Я устанавливаю код скидки в функциях ниже и получаю его в контроллере представления корня. Должен ли я установить его в какую -то другую функцию в AppDelegate? < /P>

Код: Выделить всё

// Called when a push notification is delivered while app is in foreground
func userNotificationCenter(_ center: UNUserNotificationCenter,
willPresent notification: UNNotification,
withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {

let userInfo = notification.request.content.userInfo

var eventProperties: [String: Any] = [:]
for (key, value) in userInfo {
if let keyString = key as? String {
eventProperties[keyString] = value
}
}
eventProperties["Source"] = "Warm"

Amplitude.sharedInstance.track(eventType: "push_click", eventProperties: eventProperties)

UserDefaults.standard.set("SECRET", forKey: "pendingDiscountCode")

// Decide how to show the notification
completionHandler([.banner, .sound, .badge])
}

// Called when user taps the push
func userNotificationCenter(_ center: UNUserNotificationCenter,
didReceive response: UNNotificationResponse,
withCompletionHandler completionHandler: @escaping () -> Void) {

let userInfo = response.notification.request.content.userInfo

var eventProperties: [String: Any] = [:]
for (key, value) in userInfo {
if let keyString = key as? String {
eventProperties[keyString] = value
}
}
eventProperties["Source"] = "Warm"

Amplitude.sharedInstance.track(eventType: "push_click", eventProperties: eventProperties)

UserDefaults.standard.set("SECRET", forKey: "pendingDiscountCode")

completionHandler()
}
< /code>
Вот код контроллера корневого представления: < /p>
let defaults = UserDefaults.standard

if defaults.string(forKey: "pendingDiscountCode") != nil {
defaults.removeObject(forKey: "pendingDiscountCode")

Amplitude.sharedInstance.track(eventType: "discover_discount_code_modal_shown", eventProperties: nil)

OffModalViewController.present(initialView: self, delegate: self)

return
}
in viewwillappear

Подробнее здесь: https://stackoverflow.com/questions/797 ... background
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»