AndroidAndroid

Android-推荐一个WebView开源库(AgentWeb)

2022-08-03  本文已影响0人  阿博聊编程
图片来源网络,入侵必删

在维护一些项目的时候,你可以会见到H5页面是使用AgentWeb来加载的。这篇博客来分享一下AgentWeb相关的知识,希望对你有所帮助。

AgentWeb

AgentWeb是一个基于的 Android WebView ,极度容易使用以及功能强大的库,提供了 Android WebView 一系列的问题解决方案 ,并且轻量和极度灵活。

特性

导入项目

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

AndroidX项目:

 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项目:

 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' // (可选)

我项目使用的是5.0.0版本,如果想看有没有更新可以看开源库的wiki

使用示例

基础用法:

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都会用到的):

AgentWebConfig.clearDiskCache(this.getContext());

混淆代码

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

注意事项

开源的大佬提示需要注意以下情况:

上一篇 下一篇

猜你喜欢

热点阅读