通过Inetnt调用系统的浏览器:
Uri uri = Uri.parse(url);// url 为你要链接的地址,为String;
Intent intent = new Intent(Intent.ACTION_VIEW,url);
startActivity(intent);
在webView加载页面时,要用loadUrl();
加载两类资源:
1.web资源:webView.loadUrl("http://www.baidu.com");
2.本地文件:webView.loadUrl("file:///.../xx.html");
本地文件放在:assets文件中;
使页面获得焦点:
webView.requestFocus();
步骤:
第一步:声明webView,创建初始化函数init(),将初始化都写在init()函数中;在manifest文件的permissons中,添加uses permission,选择INTENT保存;
第二步:在init()中,使用loadUrl两种方式来加载网页;(此时还是用系统存在的浏览器来加载,原因是当用户点击一个webView中的页面链接时,通常是由默认的浏览器打开并加载目标URL的,而,你可以在webView中覆盖这一行为,调用setWebViewClient(new WebViewClient());
第三步:覆盖webView的默认;调用
setWedViewClient(new WebViewClient()
{
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
//为true时,控制网页在webView中打开;
//为false时,调用系统浏览器或第三方浏览器打开;
//因此使用view.loadUrl()加载,并强制返回true,就可以用webView打开;
view.loadUrl(url);
return true;
}
});
后退与前进:
如果直接按返回键,就会直接退出程序;当你的wedView覆盖了URL的加载,他会自动生成历史访问记录,可以通过goBack()或goForward()向前或向后访问已经访问过的站点;
步骤:
第一步:改写物理按键--返回的逻辑,重写onKeyDown()方法:
public boolean onKeyDown(int keyCode,keyEvent event)
{
if(keyCode==KeyEvent.KEYCODE_BACK)
{
if(webView.canGoBack())
{
webView.goBack();//返回上一页面;
return true;
}
else {
System.exit(0);//退出程序;
}
}
return super.onKeyDown(keyCode,event);
}
判断页面的加载过程:
第一步:声明ProgressDialog,
webView.setWebChromeClient(new WebChromeClient())
{
public void onProgressChanged(WebView view,int newProgress)
{ //newProgress为1-100之间的整数;
if(newProgress==100) //网页加载完毕;
{
closedialog( );//自定义
}
else //正在加载;
{
opendialog(newProgress);//自定义;
}
}
}
private void openDialog(int newProgress)
{
if(progressDialog==null)
{
progressDialog=new ProgressDialog(MainActivity.this);
/*
调用progressDialog的
setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
调用setTitle的方法,来设置标题;
调用setMessage的方法,来设置对话框中的文字信息;
*/
progressDialog.setProgress(newProgress);
progressDialog.show();
}
else
{
progressDialog.setProgress(newProgress);
}
}
private void closedialog()
{
if(dialog!=null&&dialog.isShowing())
{
dialog.dismiss();
dislog=null;
}
}
webView缓存的应用:可以提高下次打开相同的页面的速度
setting为设置javascript时的websettings;
优先使用缓存:
setting.setCacheMode(WedSetting.LOAD_CACHE_ELSE_NETWORK);
不使用缓存(默认):
setting.getSettings().setCacheMode(WedSetting.LOAD_NO_CACHE);
清除缓存:尝试一下使用getCacheDir()方法获取缓存路径,然后删除缓存的文件;
WebViewClient()的功能是帮助webView处理一些页面控制盒请求通知;
webView.getUrl()获得当前的地址;
Uri uri = Uri.parse(url);// url 为你要链接的地址,为String;
Intent intent = new Intent(Intent.ACTION_VIEW,url);
startActivity(intent);
在webView加载页面时,要用loadUrl();
加载两类资源:
1.web资源:webView.loadUrl("http://www.baidu.com");
2.本地文件:webView.loadUrl("file:///.../xx.html");
本地文件放在:assets文件中;
使页面获得焦点:
webView.requestFocus();
步骤:
第一步:声明webView,创建初始化函数init(),将初始化都写在init()函数中;在manifest文件的permissons中,添加uses permission,选择INTENT保存;
第二步:在init()中,使用loadUrl两种方式来加载网页;(此时还是用系统存在的浏览器来加载,原因是当用户点击一个webView中的页面链接时,通常是由默认的浏览器打开并加载目标URL的,而,你可以在webView中覆盖这一行为,调用setWebViewClient(new WebViewClient());
第三步:覆盖webView的默认;调用
setWedViewClient(new WebViewClient()
{
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
//为true时,控制网页在webView中打开;
//为false时,调用系统浏览器或第三方浏览器打开;
//因此使用view.loadUrl()加载,并强制返回true,就可以用webView打开;
view.loadUrl(url);
return true;
}
});
后退与前进:
如果直接按返回键,就会直接退出程序;当你的wedView覆盖了URL的加载,他会自动生成历史访问记录,可以通过goBack()或goForward()向前或向后访问已经访问过的站点;
步骤:
第一步:改写物理按键--返回的逻辑,重写onKeyDown()方法:
public boolean onKeyDown(int keyCode,keyEvent event)
{
if(keyCode==KeyEvent.KEYCODE_BACK)
{
if(webView.canGoBack())
{
webView.goBack();//返回上一页面;
return true;
}
else {
System.exit(0);//退出程序;
}
}
return super.onKeyDown(keyCode,event);
}
判断页面的加载过程:
第一步:声明ProgressDialog,
webView.setWebChromeClient(new WebChromeClient())
{
public void onProgressChanged(WebView view,int newProgress)
{ //newProgress为1-100之间的整数;
if(newProgress==100) //网页加载完毕;
{
closedialog( );//自定义
}
else //正在加载;
{
opendialog(newProgress);//自定义;
}
}
}
private void openDialog(int newProgress)
{
if(progressDialog==null)
{
progressDialog=new ProgressDialog(MainActivity.this);
/*
调用progressDialog的
setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
调用setTitle的方法,来设置标题;
调用setMessage的方法,来设置对话框中的文字信息;
*/
progressDialog.setProgress(newProgress);
progressDialog.show();
}
else
{
progressDialog.setProgress(newProgress);
}
}
private void closedialog()
{
if(dialog!=null&&dialog.isShowing())
{
dialog.dismiss();
dislog=null;
}
}
webView缓存的应用:可以提高下次打开相同的页面的速度
setting为设置javascript时的websettings;
优先使用缓存:
setting.setCacheMode(WedSetting.LOAD_CACHE_ELSE_NETWORK);
不使用缓存(默认):
setting.getSettings().setCacheMode(WedSetting.LOAD_NO_CACHE);
清除缓存:尝试一下使用getCacheDir()方法获取缓存路径,然后删除缓存的文件;
WebViewClient()的功能是帮助webView处理一些页面控制盒请求通知;
webView.getUrl()获得当前的地址;