Android控件之WebView
来源:互联网 发布:管道安装设计软件 编辑:程序博客网 时间:2024/05/21 05:24
WebView 可调用浏览器显示网页
要在WebView中加载页面 使用loadUrl()
Web资源:webView.loadUrl(“http://www.baidu.com”)
加载本地文件则:WebView.loadUrl(“file:///android_assets/XX.html”);
// 使页面获得焦点
WebView.requestFocus();
在它WebView工作之前,要保证应用能够访问网络。
也就是说 需要在配置文件中获取INTERNET权限。
<manifest ...>
<uses-permission android:name="android.permission.INTERNET"/>
.....
</manifest>
具体例子 example:
-----------------------------------------------------------------------------------------
/*实例化WebView
*在mainfest配置文件中添加网络访问权限
*/
public class MainActivity extends Activity {
private String url="http://114.215.107.160";
private WebView wv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
wv = (WebView) findViewById(R.id.webView);
// Uri uri = Uri.parse(url); //url 是你想要访问的网站
// Intent intent = new Intent(Intent.ACTION_VIEW, uri);
// startActivity(intent);
// 访问本地文件html,该文件需放在assets目录下
//wv.loadUrl("file:///android_assets/example.html");
//访问外部网页
wv.loadUrl("http://114.215.107.160");
//下面将覆盖webView默认通过第三方或者自带浏览器打开网页的行为,使网页在WebView中打开
wv.setWebViewClient(new WebViewClient(){
public boolean shouldOverrideUrlLoading(WebView view,String url){
//返回true 则在WebView中打开 false 则调用第三方或系统自带
view.loadUrl(url);
return true;
}
//WebViewClient帮助 WebView 处理页面控制和页面请求
});
private WebView wv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
wv = (WebView) findViewById(R.id.webView);
// Uri uri = Uri.parse(url); //url 是你想要访问的网站
// Intent intent = new Intent(Intent.ACTION_VIEW, uri);
// startActivity(intent);
// 访问本地文件html,该文件需放在assets目录下
//wv.loadUrl("file:///android_assets/example.html");
//访问外部网页
wv.loadUrl("http://114.215.107.160");
//下面将覆盖webView默认通过第三方或者自带浏览器打开网页的行为,使网页在WebView中打开
wv.setWebViewClient(new WebViewClient(){
public boolean shouldOverrideUrlLoading(WebView view,String url){
//返回true 则在WebView中打开 false 则调用第三方或系统自带
view.loadUrl(url);
return true;
}
//WebViewClient帮助 WebView 处理页面控制和页面请求
});
}
-------------------------------------------------------------------------------------------------------------
在WebView 中可使用JavaScript
实现方法:
//启用javaScript
WebSetting settings = wv.getSettings();
settings.setJavaScriptEnable(true);
------------------------------------------------------------------------------------------------
实现后退和前进
当你的WebView覆盖了原来的URL加载,它便会生成访问记录,可以
通过goBack()或goForward()向前向后访问已经访问过的站点。
代码实现:
//改写物理按键返回键的逻辑
@Override
public boolean onKeyDown(int keyCode,KeyEvent event){
if(keyCode==KeyEvent.KEYCODE_BACK)
{
if(webview.canGoBack()){//判断是否可以返回上一界面
webview.goBack();//返回上一界面
return true;
}
else{
System.exit(0); //退出程序
}
}
retrun super.onkeyDown(keyCode,event);
}
-----------------------------------------------------------------------------------------------
判断页面加载过程
因为有些页面加载比较缓慢,所以需要加载进度条。
webview.setWebChromeClient(new WebChromeClient(){
@Override
public void onProgressChanged(WebView view,int newProgress){
//newProgress 1-100之间的整数
if(newProgress==100)
{
//网页加载完毕,自定义函数关闭进度条对话框
closeDialog();
}
else
{
//网页正在加载,自定义一个函数打开对话框
openDialog(newProgress);
}
}
})
-------------------------------------------------------------------------------------------
WebView缓存的应用(增加浏览速度)
//WebView加载页面优先使用缓存加载
WebSetting settings = wv.getSettings();
settrings.setCacheMode(WevSettrings.LOAD_CACHE_ELSE_NETWORK);
0 0
- Android控件之WebView
- Android控件之WebView
- Android控件之WebView
- android WebView 控件之返回
- Android控件之初识WebView
- Android网络技术之WebView控件
- android控件之WebView及指定浏览器
- 0911Android基础网络技术之WebView控件
- Android控件之WebView(基础知识)
- Android控件之WebView ScrollView问题录
- Android之WebView控件简单使用总结
- android之WebView控件的使用方法总结
- Android之 WebView(网页控件)使用方法
- android UI控件之webview控件使用实例:加载网页到webview中
- Android控件webview使用
- Android WebView控件整理
- Android的WebView控件
- android 控件学习------WebView
- 24. Java IO: Reader-Writer && Java IO: PrintWriter
- X11
- 多重继承
- Android控件之ProgressBar
- 剑指offer之面试题:查找和排序
- Android控件之WebView
- Fragment 基础详解
- Struts中错误: No result defined for action
- 116. Populating Next Right Pointers in Each Node
- 实现Fragment与Activity通信
- Potato项目文档(3)
- Android之 Viewpager
- 258.[LeetCode]Add Digits
- 【Leetcode】:242. Valid Anagram问题 in Go语言