Android 使用WebView在界面中显示网页


通过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>

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM