public class MainActivity extends AppCompatActivity {
private WebView webView;
private String url = "http://2014.qq.com/";
private ProgressDialog dialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init();
} private void init() { webView = (WebView)findViewById(R.id.webview);
//加载网页地址
webView.loadUrl(url);
//重写shouldOverrideUrlLoading方法使网页可以在应用中显示 而不是系统浏览器
webView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// return super.shouldOverrideUrlLoading(view, url);
view.loadUrl(url);
return true;
}
}); //启用支持JavaScript
WebSettings settings = webView.getSettings();
settings.setJavaScriptEnabled(true);
//WebView加载页面优先使用缓存
settings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK); webView.setWebChromeClient(new WebChromeClient() {
@Override
public void onProgressChanged(WebView view, int newProgress) {
if (newProgress == 100) {
//加载完毕 关闭ProgressDialog
closeDialog();
} else {
//正在加载 打开ProgressDialog
openDialog(newProgress);
}
}
}); } private void openDialog(int newProgress) {
if(dialog == null){
dialog = new ProgressDialog(MainActivity.this);
dialog.setTitle("正在拼命加载..."); //设置标题
dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); //设置样式
dialog.setProgress(newProgress); //更新内容
dialog.show(); //显示出来
}
else{
dialog.setProgress(newProgress);
}
} private void closeDialog() {
if(dialog != null && dialog.isShowing()){
dialog.dismiss(); //取消显示
dialog = null;
}
} //改写手机物理按键 返回逻辑
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_BACK){ if(webView.canGoBack()) {
webView.goBack(); //返回上一页面
return true;
}
else {
System.exit(0); //推出程序n b
}
}
return super.onKeyDown(keyCode, event); }

  

手机 简易浏览器 WebView的基本使用 返回 缓存 进度条的更多相关文章

  1. Android简易实战教程--第二话《两种进度条》

    点击按钮模拟进度条下载进度,"下载"完成进度条消失. 代码如下: xml: <?xml version="1.0" encoding="utf- ...

  2. Android中的webview的进度条

    <application android:icon="@drawable/hunqin" android:label="@string/app_name" ...

  3. WebView长按保存图片;WebView不跳转到系统的浏览器;WebView加载显示进度条;WebView返回事件处理;

    直接看代码即可,代码里面注释写的很清楚,这个类拉下来就能用: 写法和命名比较粗暴,但也简单易懂: public class MainActivity extends AppCompatActivity ...

  4. 使用JQuery Mobile实现手机新闻浏览器

    jQuery Mobile项目是jQuery项目下的在移动开发方面的又一力作,在本文中,笔者将带你一步步更深入学习使用jQuery Mobile框架去实现一个能在android手机上运行的新闻浏览器, ...

  5. Iphone6手机不同浏览器页面尺寸设计

    做移动端html5页面适配,通常要考虑很多种情况. 对于同一部手机,通常要考虑如下3点: 1. 在手机普通浏览器中打开,比如Safari浏览器,UC浏览器,QQ浏览器,360浏览器,谷歌浏览器. 2. ...

  6. 第4课 简易浏览器-WebViewer组件的使用方法

    做一个手机浏览器,需要哪些组件呢? 一.组件设计 二.组件属性及命名修改 三.逻辑设计 1.导航按钮代码:前进.后退.主页 2.访问网页按钮 1)根据用户在地址栏输入的地址书写,判断书写中是否含有“h ...

  7. python3用pyqt5开发简易浏览器

    http://python.jobbole.com/82715/ 在这篇教程中,我们会用 Python 的 PyQt 框架编写一个简单的 web 浏览器.关于 PyQt ,你可能已经有所耳闻了,它是 ...

  8. UC如被百度控股,手机qq浏览器改如何进攻和防守

    很早以前在公司内部论坛里写的一篇文章,绯闻已经过过去了,现在已物事人物,UC已有阿里大靠山了. ----------------------------------------------- 据网络媒 ...

  9. canvas在手机qq浏览器显示错乱

    做大转盘的时候,使用html5 canvas 生成转盘,但在手机qq浏览器中显示错乱. 原本想在后台生成大转盘图片,后来想一想既然用图片来实现, 还不如直接由canvas 导出 toDataURL 在 ...

随机推荐

  1. python+Selenium PhantomJS网页截图

    PhantomJS是一个基于webkit的JavaScript API.它使用QtWebKit作为它核心浏览器的功能,使用webkit来编译解释执行JavaScript代码.任何你可以在基于webki ...

  2. React Native面试题记录

    一.ES6中增加了那些新的功能? 1> for-of循环: 使用 for-of 的时候,循环的是数组内部的元素且不会出现 for-in 中将附加属性也遍历的情况,其次,循环变量的类型和其在数组中 ...

  3. JAVA 程序员代码生成利器

     http://www.grails.org/ 为什么要用Grails 采用groovy 开发,基于springboot+ hibernate ,groovy 语言层面运行效率稍微差点,但开发效率比j ...

  4. C#中的属性-Property

    C#的属性一直都有用,但具体了解的不是很深,而且一些注意事项也没有太在意过,糊里糊涂的用着.这两天看了C#的书专门学习了一下属性,这才知道,原来属性也有这么多东西~ ~今天记录一下,算是对学习的一个检 ...

  5. ASP.NET Core 入门笔记7,ASP.NET Core MVC 视图布局入门

    一.前言 1.本教程主要内容 ASP.NET Core MVC (Razor)视图母版页教程 ASP.NET Core MVC (Razor)带有Section的视图母版页教程 ASP.NET Cor ...

  6. springboot整合es客户端操作elasticsearch(三)

    继续上个随笔: 那么我们只需要修改controller中文件就可以完成相关操作 本次主要是对文档得操作: 更新文档: package com.cxy.elasticsearch.controller; ...

  7. navicat建立本地连接出错解决

    使用navicat建立本地连接时报错: 2.设置用户配置项 (1) 查看用户信息 select host,user,plugin,authentication_string from mysql.us ...

  8. 【Python】【demo实验11】【练习实例】【三个整数的立方和】

    目的:找到 除了9n±4型自然数外,所有100以内的自然数都能写成三个整数的立方和    这每个数的表达方式: 源代码: #!/usr/bin/python # encoding=utf-8 # -* ...

  9. ActiveMQ 即时通讯服务 入門指南及淺析

    转:http://www.cnblogs.com/hoojo/p/active_mq_jms_apache_activeMQ.html 一. 概述与介绍 ActiveMQ 是Apache出品,最流行的 ...

  10. idea模块在maven projects中显示灰色的解决办法

    如题,出现的情况如下图所示 解决方式 将√去掉,点击确定关闭,对maven进行刷新操作 解决