Android 使用webview 初级
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;
}
}