WebView组件的应用
1.什么是WebView?
WebView(网络视图)能加载显示网页,可以将其视为一个浏览器,它使用了WebKit渲染引擎加载显示网页。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="@dimen/activity_horizontal_margin"
android:layout_marginRight="@dimen/activity_horizontal_margin"
android:layout_marginTop="@dimen/activity_vertical_margin"
android:layout_marginBottom="@dimen/activity_vertical_margin" > <WebView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/wv1" /> </LinearLayout>
使用的尺寸资源:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="activity_vertical_margin">10dp</dimen>
<dimen name="activity_horizontal_margin">10dp</dimen>
</resources>
实例化webview
wv1=(WebView)findViewById(R.id.wv1);
wv1.loadUrl(url);//载入url,(系统自带浏览器,要用webview需要重写方法)
websettings的设置//还可以设置很多东西
WebSettings websettings=wv1.getSettings();//获取配置信息
websettings.setJavaScriptEnabled(true);//设置脚本可以使用
websettings.setCacheMode(websettings.LOAD_CACHE_ELSE_NETWORK);//打开缓存
wv1.setWebViewClient(
new WebViewClient()
{
//需要重写shouldOverrideUrlLoading
public boolean shouldOverrideUrlLoading(WebView view,String url)
{
view.loadUrl(url);
return true; } });
这样基本完成了,但卡顿现象明显,用户体验感太差,所以我们添加一些方法。
package com.example.webview; import android.app.Activity;
import android.app.ProgressDialog;
import android.os.Bundle;
import android.view.KeyEvent;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient; public class MainActivity extends Activity { private WebView wv1=null;
String url="http:www.baidu.com";
private ProgressDialog progressDialog=null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
wv1=(WebView)findViewById(R.id.wv1);
wv1.loadUrl(url);//载入url,(系统自带浏览器,要用webview需要重写方法)
WebSettings websettings=wv1.getSettings();//获取配置信息
websettings.setJavaScriptEnabled(true);//设置脚本可以使用
websettings.setCacheMode(websettings.LOAD_CACHE_ELSE_NETWORK);//打开缓存
wv1.setWebViewClient(
new WebViewClient()
{
//需要重写shouldOverrideUrlLoading
public boolean shouldOverrideUrlLoading(WebView view,String url)
{
view.loadUrl(url);
return true; } });
wv1.setWebChromeClient(
new WebChromeClient()
{
public void onProgressChanged(WebView view,int newProgress)//重写的方法来显示Dialog的进度条
{
if (newProgress==100)
{
closeProgressDialog();
}
else
{
showProgressDialog(newProgress);
}
super.onProgressChanged(view, newProgress);
}
public void closeProgressDialog()//关闭progressDialog
{
progressDialog.dismiss();
progressDialog=null;
}
public void showProgressDialog(int newProgress)//显示progressDialog
{
if (progressDialog==null)
{
progressDialog=new ProgressDialog(MainActivity.this); progressDialog.setTitle("页面加载中...请稍后...");//设置标题
progressDialog.setProgressStyle(progressDialog.STYLE_HORIZONTAL);//设置样式
progressDialog.setProgress(newProgress);
progressDialog.show();
}
else
{
progressDialog.setProgress(newProgress);
progressDialog.show();
}
}
}); }
public boolean onKeyDown(int keyCode,KeyEvent event)
{
if (keyCode==event.KEYCODE_BACK)
{
if (wv1.canGoBack())
{
wv1.goBack();
return true;
}
else
{
System.exit(0);
}
}
return super.onKeyDown(keyCode, event);
}
}
WebView组件的应用的更多相关文章
- Webview组件和HTML的介绍
Deviceone平台并不是基于html5的跨平台开发工具.我们开发一个app都是使用原生的组件,但是在某些场景下html5也是非常好的选择,比如复杂的图文混排(类似新闻),比如报表chart之类用h ...
- Android 4.2版本以下使用WebView组件addJavascriptInterface方法存在JS漏洞
JS注入漏洞存在的Android版本:Android < 4.2 综述:Android的SDK中提供了一个WebView组件,用于在应用中嵌入一个浏览器来进行网页浏览.WebView组件中的ad ...
- 小程序web-view组件
不久前微信小程序发布了web-view组件,这个消息在各个圈里引起不小的涟漪.近期正好在做小程序的项目,便研究了一下这个让大家充满期待的组件. 1,web-view这个组件是什么鬼? 官网的介绍: ...
- [转]小程序web-view组件
本文转自:https://www.cnblogs.com/-nothing-/p/7910355.html 1,web-view这个组件是什么鬼? 官网的介绍:web-view 组件是一个可以用来承载 ...
- ReactNative WebView组件详解
在开发Android的时候,一般我们会有一些加载网页的需求,或者执行一些JavaScript,我们都知道在Android中实现这个功能的控件是WebView,在ReactNative中也有实现此类需求 ...
- 安卓开发笔记——WebView组件
我们专业方向本是JAVA Web,这学期突然来了个手机App开发的课设,对于安卓这块,之前自学过一段时间,有些东西太久没用已经淡忘了 准备随笔记录些复习笔记,也当做温故知新吧~ 1.什么是WebVie ...
- 微信小程序中的 web-view 组件
web-view 是一个可以承载 web 网页的容器,当 WXML 文件中存在 web-view 组件时,其他组件会自动全部失效,而且 web-view 承载的组件会自动铺满小程序的整个页面.其他组件 ...
- ReactNative: 使用网页组件WebView组件
一.简介 在移动端开发中,很多时候需要嵌入一个网页来帮助实现某一个活动,这方式大大提高了活动快速迭代的灵活性,在RN中,同样也这么处理这种情况的.其实,这种混合式开发称为Hybird APP,它们就是 ...
- 【Flutter学习】基本组件之Webview组件
1.添加依赖 dependencies: flutter_webview_plugin: ^+ 2.导入库 import 'import 'package:flutter_webview_plugin ...
- Android WebView组件 访问部分网页崩溃问题【已解决】
最近刚接触Android,在测试WebView组件时发现总是出现崩溃现像: 提示:ERR_CLEARTEXT_NOT_PERMITTED 当时以为是权限问题,查找自己的AndroidManifest文 ...
随机推荐
- 安全delete,添加refenerce,release
#ifndef SAFE_ADDREF#define SAFE_ADDREF(p) if (p != NULL) { p->AddRef(); }#endif #ifndef SAFE_R ...
- Flash Builder4.6破解方案(亲测有效)(转)
转自 http://bbs.9ria.com/thread-139463-1-1.html 当修改Host文件无法破解时,需要修改Flash Builder安装目录下某些文件来达到破解的目的,经网上搜 ...
- (转载)JDK中的设计模式
写的很好,学习道路更轻松一些 原文地址:http://blog.csdn.net/gtuu0123/article/details/6114197 JDK中设计模式 分类: Java相关 设计模式 2 ...
- 12款有助于简化CSS3开发的工具
网站开发者能通过CSS3为网站设计增添很多时尚元素,CSS3 对CSS规范做了很大的改进.现在,本文将介绍12款有助于简化CSS3开发的工具. 1.CSS3 Pie: 允许在IE上使用CSS3绝大部 ...
- 【解决】Microsoft Visual Studio 2012 打开2008下编译的silverlight3项目
最近因为项目需要,老师要我搞一发流程设计器,毫无头绪呀妈蛋 .. 我考虑是用silverlight呢还是jquery .. 上网找了找 .. 有一个用silverlight3写的 貌似IDE用的是V ...
- Codeforces294B - Shaass and Bookshelf(贪心)
题目大意 给你N本书,每本书由一个厚度t[i](1或者2),宽度w[i],高度都是一样,把一些书竖着放,然后一些书横着放在同一层,就像下图那样放: 问你把所有的书放好之后竖着的书的总厚度是多少? 题解 ...
- Codeforces 295C Greg and Friends
BFS+DP.dp[i][j][0]表示有i个50kg,j个100kg的人在左岸,dp[i][j][1]表示有i个50kg,j个100kg的人在右岸.用BFS求最短路的时候记录到达该状态的可能情况. ...
- ubuntu下使用脚本交叉编译windows下使用的ffmpeg + X264
这里主要是补充一些遇到的问题和解决方法. 2013-06 下旬 由于项目需要,重新编译ffmpeg+264+其他. 这里使用的环境Ubuntu 13.04,脚本依然是cross_compile_ffm ...
- PC-如何提高计算机的启动和关机的速度?
如何提高计算机的启动和关机的速度? 一.bios的优化设置 在bios设置的首页我们进入"advanced bios features"选项,将光标移到"frist bo ...
- SDWebImage 图片加载和缓存
SDWebImage托管在github上.https://github.com/rs/SDWebImage 这个类库提供一个UIImageView类别以支持加载来自网络的远程图片.具有缓存管理.异步下 ...