Sobre o projeto
AgentWeb é uma biblioteca baseada em Android WebView, projetada para simplificar o uso de WebView, oferecendo funcionalidades poderosas e flexíveis. Ela resolve problemas comuns no desenvolvimento com Android WebView, como barra de progresso, página de erro, seleção de arquivos, entre outros, e suporta middleware personalizado.
## Principais características
- **Facilidade de uso**: integração rápida por meio de chamadas em cadeia com `AgentWeb.with()`.
- **Rica em funcionalidades**: inclui barra de progresso, página de erro, seletor de arquivos (opcional), downloader, entre outros.
- **Flexibilidade**: suporta middleware (MiddlewareWebClientBase / MiddlewareWebChromeBase) para sobrepor lógica personalizada.
- **Leveza**: o núcleo da biblioteca tem tamanho reduzido, com módulos opcionais importados conforme a necessidade.
## Início rápido
1. Adicione o repositório JitPack (no Gradle 7+, configure em `settings.gradle`).
2. Adicione as dependências:
```groovy
implementation 'com.github.Justson.AgentWeb:agentweb-core:5.1.7-androidx' // obrigatório
implementation 'com.github.Justson.AgentWeb:agentweb-filechooser:5.1.7-androidx' // opcional
implementation 'com.github.Justson:Downloader:v5.0.6-androidx' // opcional
```
3. Inicialize em Activity/Fragment:
```java
AgentWeb.with(this)
.setAgentWebParent(container, new LinearLayout.LayoutParams(...))
.useDefaultIndicator()
.createAgentWeb()
.ready()
.go("https://example.com");
```
## Observações
- Não chame diretamente `setWebViewClient()` / `setWebChromeClient()` no WebView; utilize os métodos fornecidos pelo AgentWeb ou o middleware.
- `setOpenOtherPageWays(ASK)` exibe um diálogo apenas quando o aplicativo de destino já está instalado.
- Ao lidar com schemes que não sejam http/https, pode ser acionado um controle de privacidade; configure `DISALLOW` para evitar isso.
- É necessário suporte ao tema AppCompat para `AlertDialog`.
- A partir da v5.1.2, compileSdk/targetSdk foram atualizados para 36; o AGP deve ser atualizado em sincronia.
- A partir da v5.1.3, as regras de keep para `@JavascriptInterface` já estão incluídas, sem necessidade de declaração duplicada.
## Projetos relacionados
- [flying-pigeon](https://github.com/Justson/flying-pigeon): componente de IPC entre processos.
- [AgentWebX5](https://github.com/Justson/AgentWebX5): adaptação para o núcleo Tencent X5.
- [CoolIndicator](https://github.com/Justson/CoolIndicator): barra de progresso para WebView.
- [Downloader](https://github.com/Justson/Downloader): downloader de arquivos leve.
## Documentação e suporte
- [Wiki](https://github.com/Justson/AgentWeb/wiki) (incompleta)
- Exemplos Sample (recomendado)
- [Changelog](./releasenote.md)
- Feedback de problemas: [Issues](https://github.com/Justson/AgentWeb/issues)
- Grupo QQ: 599471474
## Licença
Apache License 2.0.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.