阿赛·游梦鱼·郭言赛·阿赛工作室

android studio中插入HTML网页或网站(四)——增加缓存与去除webview流氓广告

  • 发布时间: 2018年4月18日23时18分58秒 发布:asai 编辑:asai 字体:
  • <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.eesai.app1">

    <application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity android:name=".MainActivity">
    <intent-filter>
    <action android:name="android.intent.action.MAIN" />

    <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
    </activity>
    </application>

    <uses-permission android:name="android.permission.INTERNET"></uses-permission>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
    </manifest>


    <?xml version="1.0" encoding="utf-8"?>
    <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <WebView
    android:id="@+id/asaiweb_webview"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

    </android.support.constraint.ConstraintLayout>


    package com.eesai.app1;

    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.Window;
    import android.view.WindowManager;
    import android.webkit.WebResourceResponse;
    import android.webkit.WebSettings;
    import android.webkit.WebView;
    import android.webkit.WebViewClient;
    public class MainActivity extends AppCompatActivity {
    private WebView webView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    this.requestWindowFeature(Window.FEATURE_NO_TITLE);//去掉标题栏
    this.getSupportActionBar().hide();//解决标题栏有时候没法去掉的问题
    this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);//去掉顶部时间等信息栏
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    this.webView = (WebView) findViewById(R.id.asaiweb_webview);

    WebSettings webSettings = webView.getSettings();
    // 让WebView能够执行javaScript
    webSettings.setJavaScriptEnabled(true);
    // 让JavaScript可以自动打开windows
    webSettings.setJavaScriptCanOpenWindowsAutomatically(true);
    // 离线文件访问编码
    webSettings.setDefaultTextEncodingName("UTF-8");
    // 设置缓存
    webSettings.setAppCacheEnabled(true);
    // 设置缓存模式,有缓存先读缓存
    webSettings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
    //设置缓存模式,有网路就上网络
    // webSettings.setCacheMode(WebSettings.LOAD_DEFAULT);
    //设置渲染效果优先级,高
    webSettings.setRenderPriority(WebSettings.RenderPriority.HIGH);
    //设置数据库缓存路径
    webSettings.setDatabasePath("http://www.eesai.com/asai/cache/webviewCache");
    //设置 应用 缓存目录
    webSettings.setAppCachePath("/asai/cache/webviewCache");
    //开启 DOM 存储功能
    webSettings.setDomStorageEnabled(true);
    //开启 数据库 存储功能
    webSettings.setDatabaseEnabled(true);
    //开启 应用缓存 功能
    webSettings.setAppCacheEnabled(true);
    // 支持缩放(适配到当前屏幕)
    webSettings.setSupportZoom(true);
    // 将图片调整到合适的大小
    webSettings.setUseWideViewPort(true);
    // 支持内容重新布局,一共有四种方式
    // 默认的是NARROW_COLUMNS
    webSettings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);
    // 设置可以被显示的屏幕控制
    webSettings.setDisplayZoomControls(true);
    // 设置默认字体大小
    webSettings.setDefaultFontSize(12);
    // 设置WebView的客户端
    webView.setWebViewClient(new WebViewClient(){
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
    //返回值是true的时候控制去WebView打开,为false调用系统浏览器或第三方浏览器
    webView.loadUrl(url);
    return true;
    }
    //网络请求部分
    @Override
    public WebResourceResponse shouldInterceptRequest(WebView view, String url) {

    url = url.toLowerCase();
    if(url.contains("77ya.com")||url.contains("eesai.com")){
    return super.shouldInterceptRequest(view, url);
    }else{

    //return new WebResourceResponse(null,null,null); //去掉广告
    return null; //去掉广告
    }}

    }
    );

    webView.loadUrl("http://www.77ya.com/");
    }
    }
    Powered by eesai.Com ©  2018  阿赛工作室 All Rights Reserved
    本网站由 阿赛工作室 提供源代码技术支持.  备案号:苏ICP备18000000号

    网站地图建议反馈MapRssXml回到顶部