通过Intent调用系统浏览器
Uri uri = Uri.parse(url); //url为你要链接的地址
Intent intent = new Intent(Intent.ACTION_VIEW, url);
startActivity(intent);
将WebView加入你的应用
要在你的应用中加入WebView,只需要在你的活动布局中加入<WebView>元素即可
<WebView></WebView>
要在WebView加载页面,使用loadUrl
web资源:webView.loadUrl("http://www.baidu.com");
本地文件用:webView.loadUrl( "file:///android_asset/XX.html " );
本地文件存放在:assets文件中
//使页面获得焦点
webView.requestFocus();
获取网络使用权限
在它有效工作之前,你要保证你的应用能访问网络。要访问网络,需要在你的配置
使用WebView加载页面
处理页面导航
当用户点击一个WebView中的页面链接时,通常由默认的浏览器打开并加载目标URL。<br>
那么如果想在WebView中打开链接,则需呀在WebView中覆盖这一行为。<br>
(代码:webView.setWebViewClient(new WebViewClient());)
在WebView中使用Javascript
如果想在加载webView的web页面中使用JavaScript,则需要在webView中启用JavaScript。
启用JavaScript:
首先,通过在WebView中带有的WebSettings来启用;
然后,用getSettings获取WebSettings的值,
最后用setJavaScriptEnable来启用JavaScript
WebView webvView=(WebView)findViewById(R.id.webView);
WebSettings webSettings =webView.getSettings();
webSettings.setJavaScriptEnabled(true);
后退与前进
当webView覆盖了URl加载,它会自动生成历史访问记录,可以通过goBack()或goForward()向前或向后访问已访问的站点。
代码:
public boolean onKeyDown(int keyCode,KeyEvent event){
if((keyCode= =KeyEvent.KEYCODE_BACK)&&myWebView.canGoBack(){
webView.goBack();
return true;
}
return super.onKeyDown(keyCode,even);
}
判断页面加载过程
有的页面可能加载缓慢,所以要去判断页面的加载过程,制作进度条来给用户好的体验。
webView.setWebChromeClient(new WebChromeClient(){
@Override
public void onProgressChanged(WebView view, int newProgress) {
// newProgress时0-100的整数,表示页面加载的进度。当newProgress=100时代表页面加载完成
if(newProgress==100)
{
//网页加载完毕,关闭progressDialog
CloseDialog();
}
else
{
//页面正在加载,打开progressDialog
OpenDialog(newProgress);
}
super.onProgressChanged(view, newProgress);
}
private void OpenDialog(int newProgress) {
// TODO Auto-generated method stub
if(dialog==null)
{
dialog=new ProgressDialog(MainActivity.this );
dialog.setTitle("正在打开网页");//设置Dialog的标题
dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);//设置进度条的样式
dialog.setProgress(newProgress);//显示newProgress的进度
dialog.show();//在页面上显示进度
}
else
{
dialog.setProgress(newProgress);
}
}
WebView缓存的运用
WebView缓存运用(当加载页面是将页面内容储存在本地,下一次浏览此页面是从本地获取资源)
优先使用缓存:webView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
不使用缓存:
webView。getSettings().setCacheMode(WebSettings.LOAD_CACHE_NO_NETWORK);
在它有效工作之前,你要保证你的应用能访问网络。要访问网络,需要在你的配置文件中获取INTERNET权限。
<mainfest...>
<uses-permission android:name="android.permission.INTERNET"> /
>
...
</manifest>