XML
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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/web_id"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</RelativeLayout>
代码
public class MainActivity extends AppCompatActivity {
private WebView web_id;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initCitView()
}
//加载webview
private void initCitView() {
web_id = findViewById(R.id.web_id);
citSettingsWebView();
web_id.loadUrl("https://www.youkuaiyun.com/");
//不调用本机浏览器
web_id.setWebViewClient(new WebViewClient() {
//覆盖shouldOverrideUrlLoading 方法
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
});
}
@SuppressLint("SetJavaScriptEnabled")
private void citSettingsWebView() {
WebSettings settings = web_id.getSettings();
settings.setJavaScriptEnabled(true);
settings.setUseWideViewPort(true);
settings.setLoadWithOverviewMode(true);
settings.setSupportZoom(true);
settings.setBuiltInZoomControls(true);
settings.setDisplayZoomControls(false);
settings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
settings.setAllowFileAccess(true);
settings.setLoadsImagesAutomatically(true);
settings.setDefaultTextEncodingName("utf-8");
settings.setDomStorageEnabled(true);
settings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
web_id.addJavascriptInterface(new CommonJavascriptInterface(), "appActivity");
CookieManager.getInstance().setAcceptCookie(true);
CookieManager.getInstance().setAcceptThirdPartyCookies(web_id, true);
}
class CommonJavascriptInterface {
@JavascriptInterface
public void close() {
finish();
}
}
/**
* 改写物理按键——返回的逻辑,希望浏览的网页后退而不是退出浏览器
* @param keyCode
* @param event
* @return
*/
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
if (keyCode == KeyEvent.KEYCODE_BACK) {
if (web_id.canGoBack()) {
web_id.goBack();//返回上一页面
return true;
}
}
return super.onKeyDown(keyCode, event);
}
}