Introdução
Instalação
Guias
- Engine
- Perfil
- Navegador
- BrowserView
- Navegação
- Conteúdo
- Menu de contexto
- DOM
- JavaScript
- Pop-ups
- Diálogos
- Downloads
- Extensões do Chrome
- Rede
- Cache
- Cookies
- Proxy
- Autenticação
- Permissões
- Plugins
- Impressão
- Senhas
- Perfis de dados do usuário
- Cartões de crédito
- Mídia
- Zoom
- Corretor ortográfico
- Implantação
- Chromium
Resolução de problemas
- Registro
- Exceções comuns
- A aplicação não termina
- O vídeo não é reproduzido
- Não é possível iniciar sessão na conta Google
- Os dados do usuário não são armazenados
- Esquema de cores
- Falha no início
- Início lento no Windows
- Aplicação .NET que não responde
- Encerramento inesperado do processo Chromium
- Comportamento inesperado
- Fim do suporte do Windows 7/8/8.1
Migração
Downloads
Este guia descreve como gerir as transferências de arquivos (download), acompanhar o progresso da transferência, obter a notificação da conclusão da transferência, etc.
Visão geral
Para gerir os downloads de arquivos associados a um perfil
específico, utilize a seguinte abordagem:
IDownloads downloads = engine.Profiles.Default.Downloads;
Dim downloads As IDownloads = engine.Profiles.Default.Downloads
Utilizando IEngine.Downloads
, você obterá o serviço de download para o perfil predefinido.
Sempre que o DotNetBrowser precisa baixar um arquivo, o StartDownloadHandler
é utilizado. Neste handler, é possível decidir se o arquivo deve ser baixado ou o pedido deeve ser cancelado.
O exemplo de código abaixo demonstra como cancelar todos os pedidos de download:
browser.StartDownloadHandler =
new Handler<StartDownloadParameters, StartDownloadResponse>(p =>
{
return StartDownloadResponse.Cancel();
});
browser.StartDownloadHandler =
New Handler(Of StartDownloadParameters, StartDownloadResponse)(Function(p)
Return StartDownloadResponse.Cancel()
End Function)
Por padrão, todos os pedidos de download são cancelados.
Aceitar um download
Para alterar o comportamento predefinido e permitir a transferência de um arquivo, utilize a seguinte abordagem:
browser.StartDownloadHandler =
new Handler<StartDownloadParameters, StartDownloadResponse>((p) =>
{
return StartDownloadResponse.DownloadTo(Path.Combine(Path.GetTempPath(),
p.Download.Info.SuggestedFileName));
});
browser.StartDownloadHandler =
New Handler(Of StartDownloadParameters, StartDownloadResponse)(Function(p)
Return StartDownloadResponse.DownloadTo(Path.Combine(Path.GetTempPath(),
p.Download.Info.SuggestedFileName))
End Function)
No exemplo de código acima, dizemos à biblioteca que o arquivo pode ser baixado e salvo numa determinada pasta de destino.
Certifique-se de que o processo principal do Chromium tem direitos para criar arquivos na pasta de destino fornecido. Se a pasta fornecida já tiver um arquivo com o mesmo nome, o arquivo será substituído automaticamente. Recomendamos que verifique os direitos e a existência do arquivo antes de aceitar a transferência do arquivo.
Controlar um processo de download
Para controlar o processo de download, utilize a instância IDownload
que pode ser obtida utilizando o StartDownloadHandler
.
Colocar um download em pausa
Para fazer uma pausa no download, utilize o método IDownload.Pause()
:
download.Pause();
download.Pause()
Retomar um download
Para retomar a transferência em pausa, utilize o método IDownload.Resume()
:
if (download.IsPaused) {
download.Resume();
}
If download.IsPaused Then
download.Resume()
End If
Cancelar um download
Pode cancelar um download em qualquer momento, a menos que esta esteja num estado terminal. Isto inclui as downloads concluídos com êxito, os downloads cancelados e os downloads interrompidos que não podem ser retomados. Para saber se o download está no estado terminal, utilize a propriedade IDownload.State
. Para cancelar o download, utilize o método IDownload.Cancel()
, como mostra o exemplo de código abaixo:
if (download.State != DownloadState.Complete) {
download.Cancel();
}
If download.State <> DownloadState.Complete Then
download.Cancel()
End If
Eventos de download
Voê pode acompanhar o progresso do download, receber notificações quando o download é cancelado, colocado em pausa, interrompido ou concluído.
Evento de download cancelado
Para receber notificações quando o IDownload
for cancelado, utilize o evento Canceled
:
download.Canceled += (s, e) => { };
AddHandler download.Canceled, Sub(s, e)
End Sub
Evento de download concluído
Para receber notificações quando o IDownload
estiver concluído, utilize o evento Finished
:
download.Finished += (s, e) => { };
AddHandler download.Finished, Sub(s, e)
End Sub
Evento de download pausado
Para receber notificações quando o IDownload
estiver em pausa, utilize o evento Paused
:
download.Paused += (s, e) => { };
AddHandler download.Paused, Sub(s, e)
End Sub
Evento de download atualizado
Para acompanhar o progresso de download, utilize o evento Updated
:
download.Updated += (s, e) =>
{
// Obtém o progresso do download em porcentagens.
float progress = e.Progress;
// A estimativa atual da velocidade de download em bytes/segundo.
long currentSpeed = e.CurrentSpeed;
// O tamanho total de um arquivo em bytes.
long totalBytes = e.TotalBytes;
// O número de bytes recebidos (baixados).
long receivedBytes = e.ReceivedBytes;
};
AddHandler download.Updated, Sub(s, e)
' Obter o progresso do download em porcentagens.
Dim progress As Single = e.Progress
' A estimativa da velocidade atual de download em bytes/segundo.
Dim currentSpeed As Long = e.CurrentSpeed
' O tamanho total de um arquivo em bytes.
Dim totalBytes As Long = e.TotalBytes
' O número de bytes recebidos (baixados).
Dim receivedBytes As Long = e.ReceivedBytes
End Sub
Evento de download interrompido
Para receber notificações quando o Download
for interrompido por algum motivo, utilize o evento Interrupted
:
download.Interrupted += (s, e) =>
{
// O motivo da interrupção, como acesso negado ao arquivo, falha na rede, etc.
DownloadInterruptionReason reason = e.InterruptionReason;
};
AddHandler download.Interrupted, Sub(s, e)
' O motivo da interrupção, como acesso negado ao arquivo, falha na rede, etc.
Dim reason As DownloadInterruptionReason = e.InterruptionReason
End Sub