Android-推薦一個(gè)WebView開源庫(AgentWeb)

圖片來源網(wǎng)絡(luò)苟翻,入侵必刪

在維護(hù)一些項(xiàng)目的時(shí)候嚎杨,你可以會(huì)見到H5頁面是使用AgentWeb來加載的袒炉。這篇博客來分享一下AgentWeb相關(guān)的知識(shí),希望對(duì)你有所幫助付材。

AgentWeb

AgentWeb是一個(gè)基于的 Android WebView 朦拖,極度容易使用以及功能強(qiáng)大的庫,提供了 Android WebView 一系列的問題解決方案 厌衔,并且輕量和極度靈活璧帝。

特性

  • 支持進(jìn)度條以及自定義進(jìn)度條
  • 支持文件下載
  • 支持文件下載斷點(diǎn)續(xù)傳
  • 支持下載通知形式提示進(jìn)度
  • 簡(jiǎn)化 Javascript 通信
  • 支持 Android 4.4 Kitkat 以及其他版本文件上傳
  • 支持注入 Cookies
  • 加強(qiáng) Web 安全
  • 支持全屏播放視頻
  • 兼容低版本 Js 安全通信
  • 更省電 。
  • 支持調(diào)起微信支付
  • 支持調(diào)起支付寶(請(qǐng)參照sample)
  • 默認(rèn)支持定位
  • 支持傳入 WebLayout(下拉回彈效果)
  • 支持自定義 WebView
  • 支持 JsBridge富寿。

導(dǎo)入項(xiàng)目

allprojects {
    repositories {
        ...
        maven { url 'https://jitpack.io' }
    }
}

AndroidX項(xiàng)目:

 implementation 'com.github.Justson.AgentWeb:agentweb-core:v5.0.0-alpha' // (必選)
 implementation 'com.github.Justson.AgentWeb:agentweb-filechooser:v5.0.0-alpha' // (可選)
 implementation 'com.github.Justson:Downloader:v5.0.0' // (可選)

AndroidX項(xiàng)目:

 implementation 'com.github.Justson.AgentWeb:agentweb-core:v5.0.0-alpha.1-androidx' // (必選)
 implementation 'com.github.Justson.AgentWeb:agentweb-filechooser:v5.0.0-alpha.1-androidx' // (可選)
 implementation 'com.github.Justson:Downloader:v5.0.0-androidx' // (可選)

我項(xiàng)目使用的是5.0.0版本睬隶,如果想看有沒有更新可以看開源庫的wiki

使用示例

基礎(chǔ)用法:

mAgentWeb = AgentWeb.with(this)
                .setAgentWebParent((LinearLayout) view, new LinearLayout.LayoutParams(-1, -1))                
                .useDefaultIndicator()
                .createAgentWeb()
                .ready()
                .go("http://www.jd.com");

事件處理:

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {

        if (mAgentWeb.handleKeyEvent(keyCode, event)) {
            return true;
        }
        return super.onKeyDown(keyCode, event);
    }

WebChromeClient 與 WebViewClient:

AgentWeb.with(this)
                .setAgentWebParent(mLinearLayout,new LinearLayout.LayoutParams(-1,-1) )
                .useDefaultIndicator()
                .setReceivedTitleCallback(mCallback)
                .setWebChromeClient(mWebChromeClient)
                .setWebViewClient(mWebViewClient)
                .setSecutityType(AgentWeb.SecurityType.strict)
                .createAgentWeb()
                .ready()
                .go(getUrl());
private WebViewClient mWebViewClient=new WebViewClient(){
        @Override
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
           //do you  work
        }
    };
private WebChromeClient mWebChromeClient=new WebChromeClient(){
        @Override
        public void onProgressChanged(WebView view, int newProgress) {
            //do you work
        }
    };                

清空緩存(這是很多App都會(huì)用到的):

AgentWebConfig.clearDiskCache(this.getContext());

混淆代碼

-keep class com.just.agentweb.** {
    *;
}
-dontwarn com.just.agentweb.**

注意事項(xiàng)

開源的大佬提示需要注意以下情況:

  • 支付寶使用需要引入支付寶SDK ,并在項(xiàng)目中依賴 页徐, 微信支付不需要做任何操作苏潜。
  • AgentWeb內(nèi)部使用了AlertDialog需要依賴AppCompat主題 。
  • setAgentWebParent不支持ConstraintLayout变勇。
  • mAgentWeb.getWebLifeCycle().onPause();會(huì)暫停應(yīng)用內(nèi)所有WebView恤左。
  • minSdkVersion低于等于16以下自定義WebView請(qǐng)注意與JS之間通信安全。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市赃梧,隨后出現(xiàn)的幾起案子滤蝠,更是在濱河造成了極大的恐慌,老刑警劉巖授嘀,帶你破解...
    沈念sama閱讀 219,039評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件物咳,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡蹄皱,警方通過查閱死者的電腦和手機(jī)览闰,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來巷折,“玉大人压鉴,你說我怎么就攤上這事《途校” “怎么了油吭?”我有些...
    開封第一講書人閱讀 165,417評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長署拟。 經(jīng)常有香客問我婉宰,道長,這世上最難降的妖魔是什么推穷? 我笑而不...
    開封第一講書人閱讀 58,868評(píng)論 1 295
  • 正文 為了忘掉前任心包,我火速辦了婚禮,結(jié)果婚禮上馒铃,老公的妹妹穿的比我還像新娘蟹腾。我一直安慰自己,他們只是感情好区宇,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,892評(píng)論 6 392
  • 文/花漫 我一把揭開白布娃殖。 她就那樣靜靜地躺著,像睡著了一般萧锉。 火紅的嫁衣襯著肌膚如雪珊随。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,692評(píng)論 1 305
  • 那天柿隙,我揣著相機(jī)與錄音叶洞,去河邊找鬼。 笑死禀崖,一個(gè)胖子當(dāng)著我的面吹牛衩辟,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播波附,決...
    沈念sama閱讀 40,416評(píng)論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼艺晴,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼昼钻!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起封寞,我...
    開封第一講書人閱讀 39,326評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤然评,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后狈究,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體碗淌,經(jīng)...
    沈念sama閱讀 45,782評(píng)論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,957評(píng)論 3 337
  • 正文 我和宋清朗相戀三年抖锥,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了亿眠。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,102評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡磅废,死狀恐怖纳像,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情拯勉,我是刑警寧澤竟趾,帶...
    沈念sama閱讀 35,790評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站谜喊,受9級(jí)特大地震影響潭兽,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜斗遏,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,442評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望鞋邑。 院中可真熱鬧诵次,春花似錦、人聲如沸枚碗。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽肮雨。三九已至遵堵,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間怨规,已是汗流浹背陌宿。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評(píng)論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留波丰,地道東北人壳坪。 一個(gè)月前我還...
    沈念sama閱讀 48,332評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像掰烟,于是被迫代替她去往敵國和親爽蝴。 傳聞我的和親對(duì)象是個(gè)殘疾皇子沐批,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,044評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容