AgentWeb
内部方法已经设置好了WebView的缓存模式吗,在
AbsAgentWebSettings
的
settings
方法中
if (AgentWebUtils.checkNetwork(webView.getContext())) {
//根据cache-control获取数据。
mWebSettings.setCacheMode(WebSettings.LOAD_DEFAULT);
} else {
//没网,则从本地获取,即离线加载
mWebSettings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
如果想手动设置缓存模式,可以在AgentWeb
的ready()
之前加入
setAgentWebWebSettings(new AbsAgentWebSettings() {
@Override
protected void bindAgentWebSupport(AgentWeb agentWeb) {
@Override
public IAgentWebSettings toSetting(WebView webView) {
IAgentWebSettings iAgentWebSettings = super.toSetting(webView);
iAgentWebSettings.getWebSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
return iAgentWebSettings;
AgentWeb内部方法已经设置好了WebView的缓存模式吗,在AbsAgentWebSettings的settings方法中 if (AgentWebUtils.checkNetwork(webView.getContext())) { //根据cache-control获取数据。 mWebSettings.setCacheMode(WebSettings.LOAD_DEFAUL...
Mopidy-WebSettings
Mopidy扩展名,用于在Web界面中编辑设置。 由Pi MusicBox使用,但由于仅MusicBox专用设置会自动隐藏,因此也可用于个人安装或其他项目。
通过运行安装:
sudo pip install Mopidy-WebSettings
或者,如果可用,请从安装Debian / Ubuntu软件包。
在启动Mopidy之前,可以将Mopidy-WebSettings的配置添加到Mopidy配置文件中:
[websettings]
enabled = true
musicbox = false
config_file = /etc/mopidy/mopidy.conf
确保运行Mopidy的用户可写该配置文件! 并确保http扩展名正常工作。 转到便携式计算机的ip或url并添加/ settings(例如或 )
目前,这些设
1.去掉activity标题栏
2.去掉activity信息栏
3.X5浏览器内核Demo(官方地址:https://x5.tencent.com/tbs/guide/sdkInit.html )
4.webView的一些webSettings设置
5.禁止webView跳转到手机自带浏览器
6.返回键监听
如何删除项目的缓存:
getCacheDir()能够得到当前项目的缓存地址
在项目中经常会使用到WebView 控件,当加载html 页面时,会在/data/data/应用package 目录下生成database与cache 两个文件夹。请求的url 记录是保存在WebViewCache.db,而url 的内容是保存在WebViewCache 文件夹下
打开关闭使用缓存,一共有五个种类
//优先使用缓存:
WebView.getSettings().setCacheMode(WebSettings.L
WebView webView = (WebView)findViewById(R.id.webview);
WebSettings webSettings = webView.getSettings();
//webview支持js脚本
webSettings.setJavaScriptEnabled(true);
//启用数据库
webSettings.setDatabaseEnabled(true);
//设置定位的数据库路径
String dir = this.getApplicationContext().getDir(database, Context.MODE
项目地址:https://link.jianshu.com/?t=https://github.com/Justson/AgentWeb
AgentWeb 是一个基于的 Android WebView ,极度容易使用以及功能强大的库,提供了 Android WebView 一系列的问题解决方案 ,并且轻量和极度灵活
Gradle
api ‘com.just.agentweb:agentweb...
在做混合应用的时候,有几个痛点,一个是无网络无法使用,还有一个是受网络环境影响的网页加载速度。今天就这两个问题,和大家交流一下自己的经验。
离线缓存
这个比较容易,开启webView的缓存功能就可以了。
WebSettings settings = webView.getSettings();
settings.setAppCacheEnabled(true);
settings.setDa
因为使用了agentWeb,所以每次打开新的页面时,加载的是上次的缓存,而不是最新的数据。
解决办法:
在每个window.android.openNew打开的连接上都加上一个随机参数,每次点击让它重新请求最新数据,而不是加载缓存数据。
注:window.location.href=""; ////不会加载缓存数据,会直接请求最新数据;
window.android.openNew(""); ...
WebSettings.CacheMode总够有5个选项
- LOAD_DEFAULT
* 默认加载方式,使用这种方式,会实现快速前进后退,在同一个标签打开几个网页后,关闭网络时,可以通过前进后退来切换已经访问过的数据,同时新建网页需要网络
- LOAD_NO_CACHE
WebSettings用于管理WebView状态配置,当WebView第一次被创建时,WebView包含着一个默认的配置,这些默认的配置将通过get方法返回,通过WebView中的getSettings方法获得一个WebSettings对象,如果一个WebView被销毁,在WebSettings中所有回调方法将抛出IllegalStateException异常。
1、setSup
1.WebView缓存方式种类:
①LOAD_DEFAULT:默认设置,当有缓存而且没有过期使用缓存,否则使用网络数据。
②LOAD_CACHE_ELSE_NETWORK:只要有缓存就使用缓存,即使已经过期,否则使用网络数据。
③LOAD_NO_CACHE:不适用缓存,只加载网络数据。
④LOAD_CACHE_ONLY:不使用网络,只使用缓存数据。
webSetting.setAllowContentAccess(true); //是否允许在WebView中访问内容URL(Content Url) 默认允许
webSetting.setAllowFileAccess(true); // 是否允许访问文件,默认允许。注意,这里只是允许或禁止对文件系统的访问
webSetting.set...
实现 WebView 的日夜间模式可以通过设置 WebView 的背景颜色和文字颜色来实现。具体方法如下:
1. 在 res/values 文件夹下创建一个 colors.xml 文件,设置不同主题下的背景颜色和文字颜色:
```xml
<resources>
<color name="bg_color_day">#FFFFFF</color>
<color name="text_color_day">#000000</color>
<color name="bg_color_night">#000000</color>
<color name="text_color_night">#FFFFFF</color>
</resources>
2. 在 Activity 的 onCreate 方法中获取 WebView 的实例,并设置 WebView 的背景颜色和文字颜色:
```java
WebView webView = findViewById(R.id.web_view);
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
if (isNightMode) {
webView.setBackgroundColor(getResources().getColor(R.color.bg_color_night));
webView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
webView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
webView.getSettings().setRenderPriority(WebSettings.RenderPriority.HIGH);
} else {
webView.setBackgroundColor(getResources().getColor(R.color.bg_color_day));
webView.setLayerType(View.LAYER_TYPE_HARDWARE, null);
webView.setWebViewClient(new WebViewClient());
webView.setWebChromeClient(new WebChromeClient());
其中,isNightMode 是一个 boolean 类型的变量,表示当前是否为夜间模式。
3. 在 WebViewClient 的 onPageFinished 方法中设置 WebView 的文字颜色:
```java
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
if (isNightMode) {
view.loadUrl("javascript:(function(){\n" +
" var css = 'html {-webkit-filter: invert(100%);' +\n" +
" '-moz-filter: invert(100%);' +\n" +
" '-o-filter: invert(100%);' +\n" +
" '-ms-filter: invert(100%); }';\n" +
" var head = document.getElementsByTagName('head')[0];\n" +
" var style = document.createElement('style');\n" +
" style.type = 'text/css';\n" +
" if (style.styleSheet){\n" +
" style.styleSheet.cssText = css;\n" +
" } else {\n" +
" style.appendChild(document.createTextNode(css));\n" +
" }\n" +
" head.appendChild(style);\n" +
"})();");
} else {
view.loadUrl("javascript:(function(){\n" +
" var css = 'html {-webkit-filter: invert(0%);' +\n" +
" '-moz-filter: invert(0%);' +\n" +
" '-o-filter: invert(0%);' +\n" +
" '-ms-filter: invert(0%); }';\n" +
" var head = document.getElementsByTagName('head')[0];\n" +
" var style = document.createElement('style');\n" +
" style.type = 'text/css';\n" +
" if (style.styleSheet){\n" +
" style.styleSheet.cssText = css;\n" +
" } else {\n" +
" style.appendChild(document.createTextNode(css));\n" +
" }\n" +
" head.appendChild(style);\n" +
"})();");
这里使用 JavaScript 的方式实现 WebView 的文字反转效果,从而实现夜间模式下的白色文字和黑色背景。
以上就是实现 WebView 的日夜间模式的具体方法。
Android升级kotlin插件慢的解决方法
jqorz:
Android升级kotlin插件慢的解决方法
卖n-bomb的小男孩:
JAVA方法中数组作为形参,传的是引用
小杰同学要加油:
Ijk播放器无法播放带空格或者中文的网络视频的解决方法
qq_29581001: