名稱 | AgentWeb |
---|---|
語言 | Android |
平臺 | GitHub |
作者 | Justson |
鏈接 | 點此進入 |
在混合化開發(fā)大行其道的今天挪捕,安卓開發(fā)經(jīng)常會用到WebView粗梭,用于加載網(wǎng)頁。系統(tǒng)自帶的WebView性能和流暢度都一般级零,今天給大家推薦一款第三方WebView断医,性能比系統(tǒng)自帶的要好,功能也更多奏纪。
AgentWeb 是一個高度封裝的 Android WebView 鉴嗤,簡單易用 , 帶有進度條 序调、 支持文件上傳 醉锅、 下載 、 簡化 Javascript 通信 发绢、 鏈?zhǔn)秸{(diào)用 硬耍、 加強 Web 安全的庫 垄琐。讓你幾行代碼集成一個輕量級瀏覽器在你的應(yīng)用 。
功能
- 支持進度條以及自定義進度條
- 支持文件下載
- 支持文件下載斷點續(xù)傳
- 支持下載通知形式提示進度
- 簡化 Javascript 通信
- 支持 Android 4.4 Kitkat 以及其他版本文件上傳
- 支持注入 Cookies
- 加強 Web 安全
- 支持全屏播放視頻
- 兼容低版本 Js 安全通信
- 更省電 经柴。
- 支持調(diào)起微信支付
- 支持調(diào)起支付寶(請參照sample)
- 默認(rèn)支持定位
- 支持傳入 WebLayout(下拉回彈效果)
- 支持自定義 WebView
- 支持 JsBridge
優(yōu)勢
AgentWeb相對于系統(tǒng)自帶的WebView的優(yōu)勢如下狸窘。
使用方法
- 添加依賴
compile 'com.just.agentweb:agentweb:2.0.0'
- 加載網(wǎng)頁,以京東首頁為例:
mAgentWeb = AgentWeb.with(this)//傳入Activity
.setAgentWebParent(mLinearLayout, new LinearLayout.LayoutParams(-1, -1))//傳入AgentWeb 的父控件 坯认,如果父控件為 RelativeLayout 翻擒, 那么第二參數(shù)需要傳入 RelativeLayout.LayoutParams ,第一個參數(shù)和第二個參數(shù)應(yīng)該對應(yīng)。
.useDefaultIndicator()// 使用默認(rèn)進度條
.defaultProgressBarColor() // 使用默認(rèn)進度條顏色
.setReceivedTitleCallback(mCallback) //設(shè)置 Web 頁面的 title 回調(diào)
.createAgentWeb()//
.ready()
.go("http://www.jd.com");
不用配置 Setting 牛哺, 不用添加 WebChromeClient 就有進度條 陋气。
- 使用
安卓調(diào)用JavaScript方法:
//Javascript 方法
function callByAndroid(){
console.log("callByAndroid")
}
//Android 端
mAgentWeb.getJsEntraceAccess().quickCallJs("callByAndroid");
//結(jié)果
consoleMessage:callByAndroid lineNumber:27
JavaScript調(diào)用安卓方法:
//Android 端 , AndroidInterface 是一個注入類 荆隘,里面有一個無參數(shù)方法:callAndroid
mAgentWeb.getJsInterfaceHolder().addJavaObject("android",new AndroidInterface(mAgentWeb,this));
//在 Js 里就能通過
window.android.callAndroid() //調(diào)用 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內(nèi)核 ,請切換到這個倉庫AgentWebX5凰荚。更多功能使用燃观,請訪問該項目的GitHub頁查看。