Android中的WebView进行直接加载网页(要注意解决权限问题)
我们都知道Android的网络功能很不错,当然Android中WebView组件也挺不错,可以直接进行加载网页,我们可以把这个看做一个小型的浏览器\
【注】以下的一些内容我翻译了一下文档,可能有些翻译不太准确,就算自己当做一次学习英文的机会了,请大家稍微见谅一下哈
首先我们看下文档中对于WebView的解释:
WebView是进行web网页显示的,我们使用这个类为基础进行开发推出自己的Web浏览器,或者我们可以直接在当前的Activity中显示在线的内容。
WebView使用WebKit进行渲染来显示网页,通过于此,我们可以进行实现网页后退,前进,放大,缩小或者搜索或者更多功能;
【注意】使用WebView,,因为用处到了网络,所以我们必须在AndroidManifset.xml文件中进行权限设置
<uses-permission android:name="android.permission.INTERNET" />

接下来去实现WebView,需要下面一些步骤
一:要在布局文件那边声明WebView组件
二:在Activity中进行实例化
三:调用WebView的loadUrl()方法来实现。加载指定的URL地址的网页
Demo源代码:
package com.android_jiangqq.iweibo.ui;
/**
* @author jiangqq
*
*/
import com.android_jiangqq.iweibo.R;
import android.app.Activity;
import android.os.Bundle;
import android.view.Window;
import android.view.WindowManager;
import android.webkit.WebView;
public class WebView_Test extends Activity {
private WebView webView;
private static final String URL = "http://www.google.com";
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
// 取消标题
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
// 进行全屏
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.webview);
// 实例化WebView
webView = (WebView) this.findViewById(R.id.wv_oauth);
/**
* 调用loadUrl()方法进行加载内容
*/
webView.loadUrl(URL);
/**
* 设置WebView的属性,此时可以去执行JavaScript脚本
*/
webView.getSettings().setJavaScriptEnabled(true);
}
}
XML文件的定义:
<?xml version="1.0" encoding="utf-8"?>
;LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<WebView
android:id="@+id/wv_oauth"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
;/LinearLayout>
效果截图:

①:有时候我们我们需要WebView能够实现超链接的功能。我们可以调用setWebViewClient()方法试着WebView的客户端,
此时我们只要重写一下WebViewClient类下的public boolean shouldOverrideKeyEvent (WebView view, KeyEvent event)就可以了
源代码如下:
private class myWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideKeyEvent(WebView view, KeyEvent event) {
webView.loadUrl(URL);
return true;
}
}
②:考虑到网页的加载速度,我们可以调用setWebChromeClient()方法
我们此时只要重写一下WebChromeClient类中的
public void onProgressChanged (WebView view, int newProgress)来显示页面的加载进度,实例代码如下:
webview.setWebChromeClient(new WebChromeClient() {
@Override
public void onProgressChanged(WebView view, int newProgress) {
if (newProgress == 100) {
handler.sendEmptyMessage(CLOSE_DIA);
}
super.onProgressChanged(view, newProgress);
}
});
代码中我用到了handlr, 此时如果加载进度=100的时候,发个消息给handler 然后进行处理
摘自 jiangqq781931404
Android中的WebView进行直接加载网页(要注意解决权限问题)的更多相关文章
- android中滑动SQLite数据库分页加载
今天用到了android中滑动SQlit数据库分页加载技术,写了个测试工程,将代码贴出来和大家交流一下: MainActivity package com.example.testscrollsqli ...
- Android中插件开发篇之----动态加载Activity(免安装运行程序)
一.前言 又到周末了,时间过的很快,今天我们来看一下Android中插件开发篇的最后一篇文章的内容:动态加载Activity(免安装运行程序),在上一篇文章中说道了,如何动态加载资源(应用换肤原理解析 ...
- 关于Android中Fragment静态和动态加载的方法
一.静态加载 1.首先创建一个layout布局fragment.xml,里面放要显示和操作的控件 2.创建一个layout布局main1.xml,用来实现页面的跳转(跳转为要实现静态加载的界面) 3. ...
- Android中GridView滚动到底部加载数据终极版
之前在项目中有一个需求是需要GridView控件,滚动到底部自动加载.但是呢GridView控件并不提供诸如ListView监听滚动到底部的onScrollListener方法,为了实现这样一个效果, ...
- Ubuntu中程序部署时无法加载动态库的解决方法
Ubuntu下修改环境变量的三种方法 添加环境变量无法解决,可尝试如下操作: sudo vim /etc/ld.so.conf 在ld.so.conf中加入动态库的目录... 然后 sudo ldco ...
- WebView 加载网页 加载资源 总结 MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- 浅试 Webview 一app 加载 H5小游戏
整体架构: InventionActivity:实现UI的实例化,基本的按钮Activity之间跳转 GameActivity:实现UI的实例化,Webview的基本使用 MyProgressDial ...
- Android 中的 WebView实现 Html5 标签网页加载
自Android 4.4起,Android中的WebView开始基于Chromium(谷歌浏览器)支持浏览器的一系列功能,webkit解析网页各个节点,这个改变,使得WebView的性能大幅度提升,并 ...
- Android中使用WebView, WebChromeClient和WebViewClient加载网页 (能够执行js)
Android中使用WebView, WebChromeClient和WebViewClient加载网页 在android应用中,有时要加载一个网页,如果能配上一个进度条就更好了,而android ...
随机推荐
- ADSL拨号上网或者光纤上网设置概要(原创)
不管是在梧州设置光纤还是在太平设置ADSL拨号上网每次设置上网一体机的时候都是遇到各种麻烦...这次又是弄了N久,每次问题各不一样.总结一下操作过程,方便以后又遇问题回头查询自个微博.一.设置电话线的 ...
- Rails 5 Test Prescriptions 第14章 Testing Exteranl Services(中断。)
external testing strategy ✅ the service integration test✅ introduce VCR✅ Client Unit Tests ❌ Why an ...
- javascript 时间与时间戳的转换
一:时间转时间戳:javascript获得时间戳的方法有五种,都是通过实例化时间对象 new Date() 来进一步获取当前的时间戳 1.var timestamp1 = Date.parse(new ...
- uva11551矩阵快速幂
题目看了半天没看懂,,就是把一个数列更新r次,每次更新就是计算和,就是每一个数,只要出现了的表号都要加上去,具体看代码 矩阵快速幂实现加速 #include<map> #include&l ...
- UVA-810 A Dicey Problem (BFS)
题目大意:滚骰子游戏,骰子的上面的点数跟方格中的数相同时或格子中的数是-1时能把格子滚过去,找一条从起点滚到起点的路径. 题目大意:简单BFS,状态转移时细心一些即可. 代码如下; # include ...
- poj1191 棋盘分割。 dp
连接:http://poj.org/problem?id=1191 思路:额,其实就是直接搞记录一下就可以了. #include <stdio.h> #include <string ...
- docker部署mysql
1. 下载 [root@localhost my.Shells]# ./dockerStart.sh start or stop start Redirecting to /bin/systemctl ...
- maven编译报错 -source 1.5 中不支持 lambda 表达式(转)
原文链接:http://blog.csdn.net/kai161/article/details/50379418 在用maven编译项目是由于项目中用了jdk 1.8, 编译是报错 -source ...
- CAM350对比两个gerber之间的差异
今天客供的gerber 版本更新,要检查区别. 参考: https://wenku.baidu.com/view/a154028c19e8b8f67d1cb93f.html 这个更加详细: https ...
- [转载]队列queue和双端Dequeue
转载自:http://uule.iteye.com/blog/2095650?utm_source=tuicool 注意:这都只是接口而已 1.Queue API 在java5中新增加了java.ut ...