Step 1. Add the JitPack repository to your build file
Add it in your root settings.gradle at the end of repositories:
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
mavenCentral()
maven { url 'https://jitpack.io' }
}
}
Add it in your settings.gradle.kts at the end of repositories:
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
mavenCentral()
maven { url = uri("https://jitpack.io") }
}
}
Add to pom.xml
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
Add it in your build.sbt at the end of resolvers:
resolvers += "jitpack" at "https://jitpack.io"
Add it in your project.clj at the end of repositories:
:repositories [["jitpack" "https://jitpack.io"]]
Step 2. Add the dependency
dependencies {
implementation 'com.github.lilltezheng:zwebhelper:1.83'
}
dependencies {
implementation("com.github.lilltezheng:zwebhelper:1.83")
}
<dependency>
<groupId>com.github.lilltezheng</groupId>
<artifactId>zwebhelper</artifactId>
<version>1.83</version>
</dependency>
libraryDependencies += "com.github.lilltezheng" % "zwebhelper" % "1.83"
:dependencies [[com.github.lilltezheng/zwebhelper "1.83"]]
一个封装的Webview,功能基本完善
关联:
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
implementation 'com.github.LillteZheng:ZWebHelper:v1.8.2'
ZWebHelper.with(this)
.url(url)
//.loadData(data)
// .loadDataWithBaseURL(null,dataUrl)
.errorView(view)
.useCache(true) //当使用cache 时,自己写的errorview不执行,因为会干扰 cache
.parentView(frameLayout)
.autoLoadImage(true)
.go();
其中,自己配置了一些 WebSetting 的配置,如下:
mWebSettings.setDefaultTextEncodingName("utf-8");
//支持 js
mWebSettings.setJavaScriptEnabled(true);
//支持 js 打开新窗口
mWebSettings.setJavaScriptCanOpenWindowsAutomatically(true);
//屏幕自适应
mWebSettings.setUseWideViewPort(true);
mWebSettings.setLoadsImagesAutomatically(true);
mWebSettings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);
//缩放操作
mWebSettings.setSupportZoom(true); //支持缩放,默认为true。是下面那个的前提。
mWebSettings.setBuiltInZoomControls(true); //设置内置的缩放控件。若为false,则该WebView不可缩放
mWebSettings.setDisplayZoomControls(false); //隐藏原生的缩放控件
//文件权限
mWebSettings.setAllowFileAccess(true);
mWebSettings.setAllowFileAccessFromFileURLs(true);
mWebSettings.setAllowUniversalAccessFromFileURLs(true);
mWebSettings.setAllowContentAccess(true);
//GPRS ,LBS
mWebSettings.setGeolocationEnabled(true);
mWebSettings.setGeolocationDatabasePath("");
//防止图片加载不出 http 开头的图片
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
//两者都可以
mWebSettings.setMixedContentMode(mWebSettings.getMixedContentMode());
//mWebView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
}
//为了加快速度,可以刚开始不加载图片,等结束后再去加载图片
mWebSettings.setLoadsImagesAutomatically(false);
//缓存和是否加载图片,请自行配置
client 处理了一些常用的连接,以及一些错误回调
ZWebViewClient zWebViewClient = new ZWebViewClient(){
@Override
public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) {
return super.shouldInterceptRequest(view, request);
}
};
ZWebChromeClient zWebChromeClient = new ZWebChromeClient(){
@Override
public void onProgressChanged(WebView view, int newProgress) {
super.onProgressChanged(view, newProgress);
}
};
ZWebHelper.sendActionJs("sum(2,3)");
ZWebHelper.evaluateJavascript("sum(3,4)", new ValueCallback<String>() {
@Override
public void onReceiveValue(String value) {
}
});
ZWebHelper.canGoBack(keyCode)