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.