Android 使用webview 初级

分类:Android |

MainActivity.java


package com.aimanlu.luck;

import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

import android.view.KeyEvent;
import android.view.View;
import android.view.WindowManager;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Toast;


public class MainActivity extends AppCompatActivity {

    private WebView mWebView;
    private boolean isExit = false;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //屏幕常亮 在 setContentView  上写
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

        // 隐藏状态栏
        getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE//状态栏显示处于低能显示状态(low profile模式),状态栏上一些图标显示会被隐藏。
                | View.SYSTEM_UI_FLAG_FULLSCREEN//Activity全屏显示,且状态栏被隐藏覆盖掉。
                | View.SYSTEM_UI_FLAG_LAYOUT_STABLE//这个标志来帮助你的应用维持一个稳定的布局。
                | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY//全屏沉浸模式,
                | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION//效果同View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);//隐藏虚拟按键(导航栏)。有些手机会用虚拟按键来代替物理按键。

        //隐藏标题栏
        ActionBar actionBar = getSupportActionBar();
        actionBar.hide();

        // Start
//        WebView mWebView = new WebView(this);
//        WebView mWebView = this.findViewById(R.id.webSite);
//        mWebView.getSettings().setJavaScriptEnabled(true);
//        mWebView.loadUrl("http://www.updateweb.cn");
        //END

        //核心代码
//        WebView mWebView = findViewById(R.id.webSite);
        mWebView = new WebView(this);
        //启动缓存
        mWebView.getSettings().setAppCacheEnabled(true);
        //设置缓存模式
        mWebView.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT);
        mWebView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);//设置js可以直接打开窗口,如window.open(),默认为false
        mWebView.getSettings().setJavaScriptEnabled(true);//是否允许执行js,默认为false。设置true时,会提醒可能造成XSS漏洞
        mWebView.getSettings().setSupportZoom(true);//是否可以缩放,默认true
        mWebView.getSettings().setBuiltInZoomControls(true);//是否显示缩放按钮,默认false
        mWebView.getSettings().setUseWideViewPort(true);//设置此属性,可任意比例缩放。大视图模式
        mWebView.getSettings().setLoadWithOverviewMode(true);//和setUseWideViewPort(true)一起解决网页自适应问题
        mWebView.getSettings().setDomStorageEnabled(true);//DOM Storage
        //在webview内部跳转web页面
        mWebView.setWebViewClient(new WebViewClient() {
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                view.loadUrl(url);
                return true;
            }
        });
        mWebView.loadUrl("http://www.updateweb.cn/");
        setContentView(mWebView);
//        setContentView(R.layout.activity_main);
    }

    @Override
    // 设置回退
    // 覆盖Activity 类的onKeyDown(int keyCoder KeyEvent event) 方法
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) {
            mWebView.goBack(); // goBack 表示返回WebView 的上一页面
            return true;
        }
        if (!isExit) {
            isExit = true;
            Toast.makeText(getApplicationContext(), "再按一次退出程序", Toast.LENGTH_SHORT).show();
            return false;
        }
        finish();
        System.exit(0);
        return true;
    }
}