Android开发之常用框架WebView详解代码。超详细,送给初学者,完全掌握此控件
这是我特意为新手小白写的一个代码,教大家完完全全掌握WebView,
我感觉,你看懂这个,基本上可以满足以后工作中的需要了,(只针对Webview的使用),但是其实它还有好多功能,比如真正的设计到和HTML5交互的时候,它的功能很强大的,如果想深入学习的,自己再看资料吧,保证你看完此代码,完完整整的掌握WebView;
作者:程序员小冰,深夜来写,转载请说明出处。
package www.jiusansec.cc.webviewdemo;
import android.app.ProgressDialog;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
/**
* @author :程序员小冰:QQ986945193
*
* @新浪微博 :http://weibo.com/mcxiaobing
*
* @version V1.0正式版
*
* @process
*
* @Note
*
* @dateTime ${date}${time}
*
* ${tags}
*/
/**
* WebView Demo练习
*
* 加载一个网页
*/
public class MainActivity extends AppCompatActivity {
private WebView webView;
private static final String url = "http://my.csdn.net/qq_21376985";
private ProgressDialog progressDialog;
/**
* 初始化控件
*/
private void assignViews() {
webView = (WebView) findViewById(R.id.web_view);
progressDialog = new ProgressDialog(MainActivity.this);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
assignViews();
}
/**
* 点击进行跳转
*/
public void showWebview(View view){
//获取websetings 设置
WebSettings settings = webView.getSettings();
settings.setSupportZoom(true);
//设置浏览器支持javaScript
settings.setJavaScriptEnabled(true);
//设置打开自带缩放按钮
settings.setBuiltInZoomControls(true);
// 进行跳转用户输入的url地址
webView.loadUrl(url);
webView.setWebChromeClient(new WebChromeClient() {
@Override
//速度正在改变
public void onProgressChanged(WebView view, int newProgress) {
progressDialog.setMessage("加载" + newProgress);
Log.d("1507", "5");
}
});
webView.setWebViewClient(new WebViewClient(){
@Override
// 显示读渠道的内容
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
Log.d("1507", "3");
return true;
}
/**
* 页面开始的时候 回调此方法
* @param view
* @param url
* @param favicon
*/
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
if (progressDialog == null){
progressDialog.setMessage("加载中。。。。。。。。。。。");
}
Log.d("1507","1");
progressDialog.show();
}
/**
* 页面结束的时候 回调此方法
* @param view
* @param url
*/
@Override
public void onPageFinished(WebView view, String url) {
progressDialog.dismiss();
// Log.d("1507", "1");
}
});
}
/**
* 返回
* @param keyCode
* @param event
* @return
*/
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
/**
* webview.canGoBack()判断webview能否后退
*/
if (keyCode == KeyEvent.KEYCODE_BACK&& webView.canGoBack()){
//webView后退
webView.goBack();
}
return super.onKeyDown(keyCode, event);
}
}
Android开发之常用框架WebView详解代码。超详细,送给初学者,完全掌握此控件的更多相关文章
- 命令创建.net core3.0 web应用详解(超详细教程)
原文:命令创建.net core3.0 web应用详解(超详细教程) 你是不是曾经膜拜那些敲几行代码就可以创建项目的大神,学习了命令创建项目你也可以成为大神,其实命令创建项目很简单. 1.cmd命令行 ...
- 【转】Android:最全面的 Webview 详解
原文: https://blog.csdn.net/carson_ho/article/details/52693322 前言 现在很多App里都内置了Web网页(Hyprid App),比如说很多电 ...
- Android开发数据存储之ContentProvider详解
转载:十二.ContentProvider和Uri详解 一.使用ContentProvider(内容提供者)共享数据 ContentProvider在android中的作用是对外共享数据,也就是说你可 ...
- Android开发5大布局方式详解
Android中常用的5大布局方式有以下几种: 线性布局(LinearLayout):按照垂直或者水平方向布局的组件. 帧布局(FrameLayout):组件从屏幕左上方布局组件. 表格布局(Tabl ...
- 转: Android开发中的MVP架构详解(附加链接比较不错)
转: http://www.codeceo.com/article/android-mvp-artch.html 最近越来越多的人开始谈论架构.我周围的同事和工程师也是如此.尽管我还不是特别深入理解M ...
- NO.4 Android开发中常用框架及工具
android-pulltorefresh 一个强大的拉动刷新开源项目,支持各种控件下拉刷新ListView.ViewPager.WevView.ExpandableListView.GridView ...
- yolo3各部分代码详解(超详细)
0.摘要 最近一段时间在学习yolo3,看了很多博客,理解了一些理论知识,但是学起来还是有些吃力,之后看了源码,才有了更进一步的理解.在这里,我不在赘述网络方面的代码,网络方面的代码比较容易理解,下面 ...
- 【Android开发】交互界面布局详解
原文:http://android.eoe.cn/topic/summary Android 的系统 UI 为构建您自己的应用提供了基础的框架.主要包括主屏幕 (Home Screen).系统 UI ...
- python3开发进阶-Django框架的详解
一.MVC框架和MTV框架 MVC,全名是Model View Controller,是软件工程中的一种软件架构模式,把软件系统分为三个基本部分: 模型(Model).视图(View)和控制器(Con ...
随机推荐
- x86架构: 硬件启动过程分析(附引导启动代码)
用户按下开机键,几秒的时间,都经历了啥? 1.cpu各个寄存器赋初始值,cs.base=0xffff0000, eip=0xfff0,其他寄存器都是0,这时cs:ip得到的物理地址:0xfffffff ...
- 不使用spring-boot-starter-parent作为依赖parent
背景环境 在某些情况下由于某些原因,我们的项目不能使用spring-boot-starter-parent作为<parent>依赖,一定要有自己的<parent>,但同时还希望 ...
- 授人以渔:stm32资料查询技巧
摘要:本章以stm32f103作为案例向大家讲解arm公司和st公司的关系以及我们在对stm32开发时需要如何正确的查找手册. ARM公司和ST公司的关系 这里要从一块芯片的生产说起,比如我们要生成一 ...
- Python 进程与多线程
10 进程和多线程 10.1 多进程 # -*- coding: utf-8 -*- import os pid=os.fork() print ('process (%s)start ...' %o ...
- ALGEBRA-3 线性映射
不求甚解 [零空间] 零空间对加法和标量乘法封闭,因此属于子空间:
- python中1 is True 的结果为False,is判断与==判断的区别
python中1 is True 的结果为False,而1 == True的结果为True. python中True的数值就是1,那为什么1 is True 的结果为False呢? 因为is判断和== ...
- Butterfly侧边栏引入一言
此教程涉及修改源码 背景 在修改每页显示7篇文章后,出现了这种情况. 这是完美主义(强迫症)的我所不能忍受的,有什么可以占据这里的呢?{% btn 'https://hitokoto.cn/',一言, ...
- 【工具】OSS阿里云存储服务--超级简单--个人还是觉得Fastdfs好玩
介绍 阿里云对象存储服务(Object Storage Service,简称 OSS)为您提供基于网络的数据存取服务. 使用 OSS,您可以通过网络随时存储和调用包括文本.图片.音频和视频等在内的各种 ...
- Oracle用户授权
一.用户授权 1)普通权限 grant ${autoType1, autoType2, autoType3, ...} to ${userName} identified by ${password} ...
- Spring,SpringMVC,MyBatis,Hibernate,Servlet的生命周期,jsp有哪些内置对象,Tomcat,Cookie和Session的作用以及区别,oracle,MYSQL等面试题总结
1. 什么是Spring,谈谈你对Spring的理解 Spring是我们JAVA开发人员在搭建后台时选用的一个轻量级的开源框架,Spring框架目前也是功能丰富,十分优秀企业级采用最多的一个框架. S ...