Академический Документы
Профессиональный Документы
Культура Документы
Networking
Maps
Cloud computing
Analytics
Advertising
Ver: https://www.programmableweb.com/
Consulta de
información del libro
a través de ISBN
scan
GoogleBookService.swift
class GoogleBooksService {
}
func cancel() {
// Cancel any web service operations
}
protocol BooksService {
func getBook(with barcode: String,
completionHandler: @escaping (Book?, Error?) -> Void)
func cancel()
}
Método foundBarcode
booksService.getBook(with: barcode) {
(scannedBook, error) in
if error != nil {
// Deal with error here
return
} else if let scannedBook = scannedBook {
self.titleTextField.text = scannedBook.title
self.authorTextField.text = scannedBook.author
self.bookCover.image = scannedBook.cover
self.isbnTextField.text = barcode
}else {
// Deal with no error, no book!
}
}
Configuración Ejemplo
• Default: Almacena ls respuestas en disco (caché) let configuration =
• Ephemeral: No realiza caché URLSessionConfiguration.default
• Background: permite que las tareas sean realizadas
cuando el app está en background
• requestCachePolicy: determina cuándo las solicitudes configuration.requestCachePolicy =
en esta sesión chequean datos del caché. .reloadIgnoringLocalCacheData
(Los cachés son ignorados)
• timeoutIntervalForRequest: tiempo aceptable antes configuration.timeoutIntervalForRequest =
que una solicitud expire. 30
(por default, 60)
• allowsCellularAccess: especifica si la sesión debería configuration.allowsCellularAccess = false
usar redes celulares. (previene acceso a redes celulares)
Configuración Ejemplo
• Shared session: apropiado para tareas básicas de red. let session = URLSession.shared
No puede ser personalizada más allá de la
configuración por defecto.
• Instancia a través de un objeto de configuración de let session = URLSession(configuration:
sesión. configuration)
Configuración Descripción
//generate request
let request = URLRequest(url: url)
Método getBook
// Get book information
self.parseJSON(data: data, completionHandler: completionHandler)
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>books.google.com</key>
<dict><key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
</dict>
</dict>
</dict>
func foundBarcode(barcode:String) {
UIApplication.shared.isNetworkActivityIndicatorVisible = true
booksService.getBook(with: barcode) {
(scannedBook, error) in
UIApplication.shared.isNetworkActivityIndicatorVisible =
false
if error != nil {