名称
AgentWeb
语言
Android
平台
GitHub
作者
Justson
在混合化开发大行其道的今天,安卓开发经常会用到WebView,用于加载网页。系统自带的WebView性能和流畅度都一般,今天给大家推荐一款第三方WebView,性能比系统自带的要好,功能也更多。
AgentWeb 是一个高度封装的 Android WebView ,简单易用 , 带有进度条 、 支持文件上传 、 下载 、 简化 Javascript 通信 、 链式调用 、 加强 Web 安全的库 。让你几行代码集成一个轻量级浏览器在你的应用 。
功能
支持进度条以及自定义进度条
支持文件下载
支持文件下载断点续传
支持下载通知形式提示进度
简化 Javascript 通信
支持 Android 4.4 Kitkat 以及其他版本文件上传
支持注入 Cookies
加强 Web 安全
支持全屏播放视频
兼容低版本 Js 安全通信
更省电 。
支持调起微信支付
支持调起支付宝(请参照sample)
默认支持定位
支持传入 WebLayout(下拉回弹效果)
支持自定义 WebView
支持 JsBridge
优势
AgentWeb相对于系统自带的WebView的优势如下。
使用方法
添加依赖
compile 'com.just.agentweb:agentweb:2.0.0'
加载网页,以京东首页为例:
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");
//结果
consoleMessage:callByAndroid lineNumber:27
JavaScript调用安卓方法:
//Android 端 , AndroidInterface 是一个注入类 ,里面有一个无参数方法:callAndroid
mAgentWeb.getJsInterfaceHolder().addJavaObject("android",new AndroidInterface(mAgentWeb,this));
//在 Js 里就能通过
window.android.callAndroid() //调用 Java 层的 AndroidInterface 类里 callAndroid 方法
跟随 Activity 或者 Fragment 生命周期 , 释放 CPU和资源, 更省电 。方法如下:
@Override
protected void onPause() {
mAgentWeb.getWebLifeCycle().onPause();
super.onPause();
}
@Override
protected void onResume() {
mAgentWeb.getWebLifeCycle().onResume();
super.onResume();
}
如果你更喜欢腾讯X5内核 ,请切换到这个仓库AgentWebX5。更多功能使用,请访问该项目的GitHub页查看。