AgentWeb 涣旨, 一個簡潔易用的 Android Web 庫

AgentWeb 介紹

AgentWeb 是一個高度封裝的 Android WebView ,簡單易用 股冗, 帶有進度條 霹陡、 支持文件上傳 、 下載 、 簡化 Javascript 通信 烹棉,加強 Web 安全的庫 攒霹。 App 下載體驗

前言

WebView 可謂是每個應(yīng)用必備的一個控件了 ,但是談起它的使用 浆洗,讓很多人都不是那么喜歡它 催束,比如說每個 Web 頁面都需要各種一大推的 setting ,好一點的可能封裝成一個 BaseWebActivity 和 BaseWebFragment 伏社,但是重復(fù)的代碼總是讓有潔癖的程序員不舒服 抠刺,而且 WebView 本身功能也不是很完善 , AgentWeb 就泥補了這些空缺 摘昌。

AgentWeb 功能

  1. 支持進度條以及自定義進度條
  2. 支持文件下載
  3. 支持文件斷點續(xù)傳
  4. 支持下載通知形式提示進度
  5. 簡化 Javascript 通信
  6. 支持返回事件處理
  7. 支持注入 Cookies
  8. WebView 安全

為什么要使用 AgentWeb 矫付?

七個字 ,簡潔易用體驗好 第焰。 最重要的是 WebView 很多東西不支持呀 买优, 坑太多!

Web 文件下載 文件上傳 Js通信 斷點續(xù)傳 使用簡易度 進度條 線程安全
WebView 不支持 不支持 支持 不支持 麻煩 沒有 不安全
AgentWeb 支持 支持 更簡潔 支持 簡潔 安全

簡潔易用

為什么說它簡潔易用嗎 挺举? 下面京東商城效果圖 杀赢, 只需一句話 !

mAgentWeb = AgentWeb.with(this)//傳入Activity
                .setAgentWebParent(mLinearLayout, new LinearLayout.LayoutParams(-1, -1))//傳入AgentWeb 的父控件 湘纵,如果父控件為 RelativeLayout 脂崔, 那么第二參數(shù)需要傳入 RelativeLayout.LayoutParams
                .useDefaultIndicator()// 使用默認進度條
                .defaultProgressBarColor() // 使用默認進度條顏色
                .setReceivedTitleCallback(mCallback) //設(shè)置 Web 頁面的 title 回調(diào)
                .createAgentWeb()//
                .ready()
                .go("http://www.jd.com");

你沒看錯 ,里面沒有一句 Setting 梧喷, 甚至連 WebChromeClient 都不配置就有進度條 砌左。

Javascript 通信拼接太麻煩 ? 請看 铺敌。

//Javascript 方法
function callByAndroid(){
      console.log("callByAndroid")
  }


Android 端

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

結(jié)果

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 都采用這種進度條是有他們道理的 , 我還見過應(yīng)用加載 Web 頁面的時候直接彈 Dialog 不可取消 匾嘱,這種惡心的做法 斤斧,沒有非常必要讓用戶確定情況都別彈 Dialog ,特別在用戶網(wǎng)絡(luò)不好的情況下 霎烙,加載速度變得突奇的慢 撬讽,那么 Dialog 就一直存在 蕊连,用戶耐性不好 ,只能把你進程殺死 锐秦。

Agentweb 視圖結(jié)構(gòu)

    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <WebView
            android:layout_width="match_parent"
            android:layout_height="match_parent">

        </WebView>
         <!--進度條-->
        <com.just.library.BaseIndicatorView
            android:layout_width="match_parent"
            android:layout_height="2dp"
            >

        </com.just.library.BaseIndicatorView>
    </FrameLayout>

很清晰 AgentWeb 最外層是 FrameLayout , 所以在使用 AgentWeb 的時候還需要給 FrameLayout 指定父控件(下面有使用方式) 盗忱。

引入

  • Gradle

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

    <dependency>
      <groupId>com.just.agentweb</groupId>
      <artifactId>agentweb</artifactId>
      <version>1.0.3</version>
      <type>pom</type>
    </dependency>
    
    

用法

Activity 使用如下

mAgentWeb = AgentWeb.with(this)//傳入Activity
                .setAgentWebParent(mLinearLayout, new LinearLayout.LayoutParams(-1, -1))//傳入AgentWeb 的父控件 酱床,如果父控件為 RelativeLayout , 那么第二參數(shù)需要傳入 RelativeLayout.LayoutParams
                .useDefaultIndicator()// 使用默認進度條
                .defaultProgressBarColor() // 使用默認進度條顏色
                .setReceivedTitleCallback(mCallback) //設(shè)置 Web 頁面的 title 回調(diào)
                .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))// 設(shè)置 AgentWeb 的父控件 扇谣, 這里的view 是 LinearLayout , 那么需要傳入 LinearLayout.LayoutParams
                .useDefaultIndicator()// 使用默認進度條
                .setReceivedTitleCallback(mCallback) //標題回調(diào)
                .setSecurityType(AgentWeb.SecurityType.strict) //注意這里開啟 strict 模式 闲昭, 設(shè)備低于 4.2 情況下回把注入的 Js 全部清空掉 罐寨, 這里推薦使用 onJsPrompt 通信
                .createAgentWeb()//
                .ready()//
                .go(getUrl());
        
    }

混淆


-keep public class * extends android.webkit.WebChromeClient

總結(jié)

AgentWeb 是一個把 WebView 完全代理出來 , 脫離 Activity 序矩、 Fragment xml 布局 鸯绿, Android Web 庫 。

地址 : AgentWeb 歡迎star

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末簸淀,一起剝皮案震驚了整個濱河市瓶蝴,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌租幕,老刑警劉巖舷手,帶你破解...
    沈念sama閱讀 207,248評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異劲绪,居然都是意外死亡男窟,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評論 2 381
  • 文/潘曉璐 我一進店門贾富,熙熙樓的掌柜王于貴愁眉苦臉地迎上來歉眷,“玉大人,你說我怎么就攤上這事颤枪±呀妫” “怎么了?”我有些...
    開封第一講書人閱讀 153,443評論 0 344
  • 文/不壞的土叔 我叫張陵汇鞭,是天一觀的道長凉唐。 經(jīng)常有香客問我,道長霍骄,這世上最難降的妖魔是什么台囱? 我笑而不...
    開封第一講書人閱讀 55,475評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮读整,結(jié)果婚禮上簿训,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好强品,可當我...
    茶點故事閱讀 64,458評論 5 374
  • 文/花漫 我一把揭開白布膘侮。 她就那樣靜靜地躺著,像睡著了一般的榛。 火紅的嫁衣襯著肌膚如雪琼了。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,185評論 1 284
  • 那天夫晌,我揣著相機與錄音雕薪,去河邊找鬼。 笑死晓淀,一個胖子當著我的面吹牛所袁,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播凶掰,決...
    沈念sama閱讀 38,451評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼燥爷,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了懦窘?” 一聲冷哼從身側(cè)響起局劲,我...
    開封第一講書人閱讀 37,112評論 0 261
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎奶赠,沒想到半個月后鱼填,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,609評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡毅戈,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,083評論 2 325
  • 正文 我和宋清朗相戀三年苹丸,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片苇经。...
    茶點故事閱讀 38,163評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡赘理,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出扇单,到底是詐尸還是另有隱情商模,我是刑警寧澤,帶...
    沈念sama閱讀 33,803評論 4 323
  • 正文 年R本政府宣布蜘澜,位于F島的核電站施流,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏鄙信。R本人自食惡果不足惜瞪醋,卻給世界環(huán)境...
    茶點故事閱讀 39,357評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望装诡。 院中可真熱鬧银受,春花似錦践盼、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,357評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至顶霞,卻和暖如春肄程,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背确丢。 一陣腳步聲響...
    開封第一講書人閱讀 31,590評論 1 261
  • 我被黑心中介騙來泰國打工绷耍, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留吐限,地道東北人鲜侥。 一個月前我還...
    沈念sama閱讀 45,636評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像诸典,于是被迫代替她去往敵國和親描函。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,925評論 2 344

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

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,528評論 25 707
  • 內(nèi)容抽屜菜單ListViewWebViewSwitchButton按鈕點贊按鈕進度條TabLayout圖標下拉刷新...
    皇小弟閱讀 46,713評論 22 664
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫狐粱、插件舀寓、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,033評論 4 62
  • 調(diào)度 fg、bg肌蜻、jobs互墓、&、 ctrl+z都是跟系統(tǒng)任務(wù)有關(guān)的 &這個用在一個命令的最后蒋搜,可以把這個命令放到后...
    xlliu閱讀 211評論 0 0
  • 我剛從北京撤回滬寧線上的三線小城的時候,無數(shù)次想著重新回去帮哈。這里除了天氣比北京好膛檀,工作比北京輕松,我實在找不到還有...
    彭小六閱讀 4,400評論 66 90