#ios #iphone #onesignal #swift4.2
Вопрос:
В нашем приложении для электронной коммерции iOS я настроил ONESIGNAL и отправил «cart_update». Я отправляю «cart_update» в значение true в ситуации, когда у пользователя есть по крайней мере один товар в корзине, и приложение достигает состояния завершения или фонового состояния. Кроме того, я выяснил, что этот процесс занимает около 7-9 секунд, чтобы теги были успешно отправлены на серверы ONESIGNAL. Я пытался следовать перечисленным проблемам и сталкивался с ними:
- Выполните фоновую выборку: в этом случае последовательность отправки тегов на сервер ONESIGNAL выполняется только после того, как пользователь снова войдет в приложение.
- приложение завершится: в этом случае оно вообще не выполняется. поэтому, чтобы проверить, я настроил таймер, как только он достигнет как в applicationWillTerminate, так и в applicationEntersBackground, и я заметил, что таймер просто работает в течение двух секунд и исчезает, где процесс занимает по крайней мере 7 секунд для завершения.
- наконец, я также использовал BGTask, но это тоже не помогло в любом случае.
Ниже приведен код, который я отправляю на один сигнал:
let AbondenTime = Int(Date().timeIntervalSince1970)
let dict: [String: String] = [
"cart_update": "(AbondenCart.isAbondened)",
"product_name": AbondenCart.productName,
"product_image": AbondenCart.productImage,
"update_time": "(AbondenTime)"]
if let jsonData = try? JSONSerialization.data(withJSONObject: dict, options: .prettyPrinted),
let nsString = NSString(data: jsonData, encoding: String.Encoding.utf8.rawValue){
let jsonString = nsString as String
print("ONE SIGNAL JSON STRING: (jsonString)")
OneSignal.sendTags(withJsonString: jsonString)
}
ПРИМЕЧАНИЕ: Если я выполню приведенный выше код, когда приложение находится на переднем плане по крайней мере 10 секунд. Он успешно размещает теги на серверах ONESIGNAL, и я вижу, что данные мгновенно отображаются под вкладкой «АУДИТОРИЯ».