AgentWeb 介绍

AgentWeb 是一个高度封装的 Android WebView ,简单易用 , 带有进度条 、 支持文件上传 、 下载 、 简化 Javascript 通信 ,加强 Web 安全的库 。 App 下载体验

前言

WebView 可谓是每个应用必备的一个控件了 ,但是谈起它的使用 ,让很多人都不是那么喜欢它 ,比如说每个 Web 页面都需要各种一大推的 setting ,好一点的可能封装成一个 BaseWebActivity 和 BaseWebFragment ,但是重复的代码总是让有洁癖的程序员不舒服 ,而且 WebView 本身功能也不是很完善 , AgentWeb 就泥补了这些空缺 。

AgentWeb 功能

支持进度条以及自定义进度条

支持文件下载

支持文件断点续传

支持下载通知形式提示进度

简化 Javascript 通信

支持返回事件处理

支持注入 Cookies

WebView 安全

为什么要使用 AgentWeb ?

七个字 ,简洁易用体验好 。 最重要的是 WebView 很多东西不支持呀 , 坑太多!

Web

文件下载

文件上传

Js通信

断点续传

使用简易度

进度条

线程安全

WebView

不支持

不支持

支持

不支持

麻烦

没有

不安全

AgentWeb

支持

支持

更简洁

支持

简洁

安全

简洁易用

为什么说它简洁易用吗 ? 下面京东商城效果图 , 只需一句话 !

mAgentWeb = AgentWeb.with(this)//传入Activity

.setAgentWebParent(mLinearLayout, new LinearLayout.LayoutParams(-1, -1))//传入AgentWeb 的父控件 ,如果父控件为 RelativeLayout , 那么第二参数需要传入 RelativeLayout.LayoutParams

.useDefaultIndicator()// 使用默认进度条

.defaultProgressBarColor() // 使用默认进度条颜色

.setReceivedTitleCallback(mCallback) //设置 Web 页面的 title 回调

.createAgentWeb()//

.ready()

.go("http://www.jd.com");

你没看错 ,里面没有一句 Setting , 甚至连 WebChromeClient 都不配置就有进度条 。

Javascript 通信拼接太麻烦 ? 请看 。

//Javascript 方法

function callByAndroid(){

console.log("callByAndroid")

}

Android 端

mAgentWeb.getJsEntraceAccess().quickCallJs("callByAndroid");

结果

05-27 08:27:04.945 469-469/com.just.library.agentweb:web I/Info: consoleMessage:callByAndroid lineNumber:27

京东商城效果图

京东效果图

到了这里 , 弱弱问一句 , 你还有什么理由不使用 AgentWeb ?

浅谈进度条

为什么要谈一下进度条这个东西呢 ? 因为没有进度条的 WebView 页面体验实在太差了 ,AgentWeb 默认的进度条是一般浏览器的进度条 ,为什么采用这种进度条呢 ? 因为体验好 ,微信和QQ ,支付宝 、 UC 以及 Safari 都采用这种进度条是有他们道理的 , 我还见过应用加载 Web 页面的时候直接弹 Dialog 不可取消 ,这种恶心的做法 ,没有非常必要让用户确定情况都别弹 Dialog ,特别在用户网络不好的情况下 ,加载速度变得突奇的慢 ,那么 Dialog 就一直存在 ,用户耐性不好 ,只能把你进程杀死 。

Agentweb 视图结构

android:layout_width="match_parent"

android:layout_height="match_parent">

android:layout_width="match_parent"

android:layout_height="match_parent">

android:layout_width="match_parent"

android:layout_height="2dp"

>

很清晰 AgentWeb 最外层是 FrameLayout , 所以在使用 AgentWeb 的时候还需要给 FrameLayout 指定父控件(下面有使用方式) 。

引入

Gradle

compile 'com.just.agentweb:agentweb:1.0.3'

Maven

com.just.agentweb

agentweb

1.0.3

pom

用法

Activity 使用如下

mAgentWeb = AgentWeb.with(this)//传入Activity

.setAgentWebParent(mLinearLayout, new LinearLayout.LayoutParams(-1, -1))//传入AgentWeb 的父控件 ,如果父控件为 RelativeLayout , 那么第二参数需要传入 RelativeLayout.LayoutParams

.useDefaultIndicator()// 使用默认进度条

.defaultProgressBarColor() // 使用默认进度条颜色

.setReceivedTitleCallback(mCallback) //设置 Web 页面的 title 回调

.createAgentWeb()//

.ready()

.go("http://www.jd.com");

Fragment 使用如下

@Override

public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {

super.onViewCreated(view, savedInstanceState);

mAgentWeb = AgentWeb.with(this.getActivity(), this)//这里需要把 Activity 、 和 Fragment 同时传入

.setAgentWebParent((ViewGroup) view, new LinearLayout.LayoutParams(-1, -1))// 设置 AgentWeb 的父控件 , 这里的view 是 LinearLayout , 那么需要传入 LinearLayout.LayoutParams

.useDefaultIndicator()// 使用默认进度条

.setReceivedTitleCallback(mCallback) //标题回调

.setSecurityType(AgentWeb.SecurityType.strict) //注意这里开启 strict 模式 , 设备低于 4.2 情况下回把注入的 Js 全部清空掉 , 这里推荐使用 onJsPrompt 通信

.createAgentWeb()//

.ready()//

.go(getUrl());

}

混淆

-keep public class * extends android.webkit.WebChromeClient

总结

AgentWeb 是一个把 WebView 完全代理出来 , 脱离 Activity 、 Fragment xml 布局 , Android Web 库 。

地址 : AgentWeb 欢迎star

agentweb回到首页_AgentWeb , 一个简洁易用的 Android Web 库相关推荐

  1. AgentWeb , 一个简洁易用的 Android Web 库

    转自:http://www.jianshu.com/p/c80da1c41af7 AgentWeb 介绍 AgentWeb 是一个高度封装的 Android WebView ,简单易用 , 带有进度条 ...

  2. Android kotlin 简洁易用的 Android web库 - AgentWeb

    <<返回总目录 文章目录 一.AgentWeb介绍 二.AgentWeb 功能 三.AgentWeb与WebView对比: 四.简单的AgentWeb的使用 一.AgentWeb介绍 Ag ...

  3. Life——一个简洁易用的强化学习库,基于pytorch

    简介 Life是一个基于pytorch实现的强化学习库,实现了多种强化学习算法. 项目地址:https://github.com/HanggeAi/Life 目前包含的强化学习算法 Sarsa mul ...

  4. android原生组件,XUI: 一个简洁而优雅的Android原生UI框架,解放你的双手!

    XUI 一个简洁而又优雅的Android原生UI框架,解放你的双手!还不赶紧点击使用说明文档,体验一下吧! 涵盖绝大部分的UI组件:TextView.Button.EditText.ImageView ...

  5. Android常用ui,XUI: 一个简洁而优雅的Android原生UI框架,解放你的双手!

    XUI 一个简洁而又优雅的Android原生UI框架,解放你的双手!还不赶紧点击使用说明文档,体验一下吧! 涵盖绝大部分的UI组件:TextView.Button.EditText.ImageView ...

  6. android炫酷叼ui,XUI: 一个简洁而优雅的Android原生UI框架,解放你的双手!

    XUI 一个简洁而又优雅的Android原生UI框架,解放你的双手!还不赶紧点击使用说明文档,体验一下吧! 涵盖绝大部分的UI组件:TextView.Button.EditText.ImageView ...

  7. android ui风格 车载,XUI: 一个简洁而优雅的Android原生UI框架,解放你的双手!

    XUI 一个简洁而又优雅的Android原生UI框架,解放你的双手!还不赶紧点击使用说明文档,体验一下吧! 涵盖绝大部分的UI组件:TextView.Button.EditText.ImageView ...

  8. agentweb回到首页_教你一招H5快应用快速回到首页

    使用快应用web组件打包封装成H5快应用后,原网页自身没有提供返回主页的功能,但转成快应用后,希望用户在浏览任一H5页面时,都能有一个回到网页主页的入口. 此需求可以参考如下步骤实现. 在页面scri ...

  9. 从零开始实现美团联盟分销——先封装一个简洁易用的SDK

    最近很火的美团外卖,酒店之类的红包推广,其本质上都是美团对外开放的API接口实现的,比如返利,分销这些,其实都不是太难. 笔者认为如果有足够好的流量渠道,大可不必搞得这么复杂,毕竟一单也就一块钱的佣金 ...

  10. notable是一个简洁易用的在pc端编写markdown笔记的工具

    PC桌面端最好用的 Markdown笔记工具 notable https://notable.app/ https://github.com/notable/notable https://coden ...

最新文章

  1. Linux 自动重启进程
  2. 毕业设计《MMORPG DEMO》——1
  3. python基础学习[python编程从入门到实践读书笔记(连载五)]:数据可视化项目第16章
  4. 数据结构与算法 | 快速排序:Hoare法, 挖坑法,双指针法,非递归, 优化
  5. 新加坡建设绿色高层数据中心的构想有所争议
  6. Python文件读取(1.1)
  7. 力压华为小米!安兔兔1月安卓性能榜第一名是它!
  8. UI设计素材专辑|轻松解决键配色方案
  9. linux下安装打字软件,linux系统指法练习与打字游戏软件
  10. 计算机技术比武优秀获奖感言,技能比赛获奖感言范文
  11. 【Linux基本知识】
  12. Facebook中国程序员之死:年仅38岁跳楼轻生,浙大EE毕业生,去年刚入职
  13. 南昌大学计算机考研2021,2021南昌大学考研参考书目
  14. yolov3网络(DarkNet53)结构详解以及Pytorch代码实现
  15. 简述 Linux DRM 架构
  16. 2021年电工(中级)最新解析及电工(中级)试题及解析
  17. 1011 最大公约数GCD
  18. JZ·7.7.2019
  19. 汽车:圆梦不需5万元 大空间优质小型车推荐
  20. sas统计分析学习笔记(九)——方差分析

热门文章

  1. 使用pem文件进行ssh登录
  2. 高速接口SFP、GbE、SRIO、PCIE、CPRI和SGMII的参考时钟选择问题
  3. python httpserver 支持ipv6
  4. 共享没有计算机网络连接不上去,苹果usb共享给电脑连接不上怎么办
  5. 机器视觉运动控制一体机应用例程 | 瓶盖密封完整性检测
  6. Springboot入门到精通(超详细文档)
  7. Adams 线性多步积分器(一)
  8. 备战秋招之数电知识查漏补缺
  9. word如何弄成两竖列_word10版艺术字怎么弄成竖列 - 卡饭网
  10. 利用 LotusScript 实现 Microsoft Word 文档在公文流转中的公文留痕