Вызов отдыха не завершается при блокировке экранаIOS

Программируем под IOS
Ответить
Anonymous
 Вызов отдыха не завершается при блокировке экрана

Сообщение Anonymous »

Я выполняю звонок для отдыха всякий раз, когда приложение приложение становится неактивным. Я делаю вызов в методе Application Application WillResignatacation . Вызов работает отлично, если пользователь нажимает кнопку «Домой» на устройстве, но если пользователь блокирует экран, пока приложение все еще находится на переднем плане, вызов, похоже, отправляется, но никогда не завершается, и я не получаю вызов на стороне сервера. < /p>

Я даже попытался сделать то, что было упомянуто в разделе «Создание менеджера с фоновой конфигурацией < /code>», но результат был таким же. При использовании фоновой конфигурации я получаю домен ошибки ошибки = nsurlerrordomain code = -997 «Потерянное соединение с службой переноса фонового передачи» . Это код, который я имею в настоящее время: < /p>

var deviceId:String
// Check if deviceId has been stored
if let device: String = NSUserDefaults.standardUserDefaults().stringForKey(Globals.KEY_DEVICE_ID) {
// deviceId is stored, use it
deviceId = device
} else {
// deviceId not stored, create a new one and store it
deviceId = NSUUID().UUIDString
NSUserDefaults.standardUserDefaults().setObject(deviceId, forKey: Globals.KEY_DEVICE_ID)
}

let params = ["statusId": "2"]
let url = "client/device/" + deviceId

// Create the URL Request
let URLRequest = NSMutableURLRequest(URL: NSURL(string: Globals.BASE_URL + url)!)
// set header fields
if let key = NSUserDefaults.standardUserDefaults().stringForKey(Globals.NS_KEY_SESSION) {
URLRequest.setValue(key, forHTTPHeaderField: "X-XX-API")
}
// Add user agent
if let userAgent = NSUserDefaults.standardUserDefaults().stringForKey(Globals.NS_KEY_USER_AGENT) {
URLRequest.setValue(userAgent, forHTTPHeaderField: "User-Agent")
}

// Set the HTTP method
URLRequest.HTTPMethod = Alamofire.Method.PUT.rawValue

let configuration = NSURLSessionConfiguration.backgroundSessionConfigurationWithIdentifier("com.myapp.background")
manager = Alamofire.Manager(configuration: configuration)

let encodeMethod: Alamofire.ParameterEncoding = Alamofire.ParameterEncoding.URL
manager.startRequestsImmediately = true
manager.request(encodeMethod.encode(URLRequest, parameters: params).0).validate().responseJSON() {
(response) in

print("response from call: \(response)")
self.manager = nil
}
< /code>

Я использую Xcode 7.1 с целью развертывания 9.1 и Alamofire версии 3.1.2.

Подробнее здесь: https://stackoverflow.com/questions/336 ... ing-screen
Ответить

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

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

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

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

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