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 处理页面控制和页面请求
  });
 }
-------------------------------------------------------------------------------------------------------------

在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