Beagle v1.6 não é mais mantida ativamente. A versão documentada que você está visualizando pode conter funcionalidades depreciadas. Para obter as funcionalidades mais recentes, consulte a nossa última versão .
Você pode registrar a forma como imagens remotas serão baixadas e preenchidas nas UIImageView fornecendo uma classe que implementa essa lógica, que foi adicionado ao Beagle na versão 1.3.0.
Com o ImageDownloader sendo criado no frontend de sua aplicação iOS, o Beagle saberá qual lógica usar para baixar e configurar o componente Image do tipo ImagePath.Remote.
O protocolo ImageDownloader se consiste em apenas método chamado fetchImage que será utilizado para fazer a requisição de suas imagens remotas.
public protocol ImageDownloader {
@discardableResult
func fetchImage(
url: String,
additionalData: RemoteScreenAdditionalData?,
completion: @escaping (Result<Data, Request.Error>) -> Void
) -> RequestToken?
}
A função fetchImage recebe 3 parâmetros:
Além disso a função pode retornar o RequestToken para que a requisição possa ser cancelada internamente pelo Beagle.
No Beagle iOS, temos uma classe chamada ImageDownloaderDefault que realiza as requisições das imagens de acordo com sua camada de rede.
Em seu método fetchImage
essa classe basicamente chama o RequestDispatcher com o tipo .fetchImage
e mapeia o resultado daquela requisição, ou seja, ela depende da implementação da sua camada de rede, você pode ver como configurá-la aqui.
Para substituir a classe responsável por realizar as requisições de imagens para o Beagle, siga os passos a seguir:
ImageDownloader
Implemente o protocolo ImageDownloader
na classe que deseja utilizar para realizar as requisições, neste caso o CustomImageDownloader
será usado como exemplo:
class CustomImageDownloader: ImageDownloader {
func fetchImage(
url: String,
additionalData: RemoteScreenAdditionalData?,
completion: @escaping (Result<Data, Request.Error>) -> Void
) -> RequestToken? {
let newUrl: URL = URL(string: url)
//Implementacao da requisição da imagem
}
//Implementacao do ImageDownloader...
}
No AppDelegate ou na classe de configurações do ambiente do Beagle, atribua a instância de CustomImageDownloader
ao atributo imageDownloader
presente no BeagleDependencies:
let dependencies = BeagleDependencies()
let customImageDownloader = CustomImageDownloader()
dependencies.imageDownloader = customImageDownloader
Beagle.dependencies = dependencies
Pronto! Agora o Beagle utilizará a sua classe com todas as modificações e definições necessárias para realizar o download de suas imagens remotas.
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.