Android编程 - WebView控件基本使用方法


最近集中在看《Android程序设计》(北航出版社)的图形用户接口的相关章节,主要针对自己比较喜欢的UI领域关注一下Android的GUI基础知识。

WebView控件提供了一个内嵌的浏览器试图,用于显示本地的html或网路上的网页。

第一步//main.xml

  1. <WebView  
  2.     android:id="@+id/html"  
  3.     android:layout_width="fill_parent"  
  4.     android:layout_height="280px"  
  5.     />   

第二步.//主类.java

  1. @Override  
  2.     public void onCreate(Bundle savedInstanceState) {  
  3.         super.onCreate(savedInstanceState);  
  4.         setContentView(R.layout.main);  
  5.   
  6.         WebView web = (WebView) findViewById(R.id.html);  
  7.         web.getSettings().setJavaScriptEnabled(true);//用于支持JavaScript   
  8.         web.loadUrl("http://www.baidu.com");//访问外部网址  

第三步.//AndroidManifest.xml

若无此行许可,则访问外部网址时,将显示网页找不到,同理在写Socket通信的程序时也需要用到本许可

  1. </application>  
  2.     <uses-permission android:name="android.permission.INTERNET"/>  
第四步.//主类.java

普通WebView控件默认显示的浏览器视图并无网页加载进度条或通告,在点击第一个页面的超链接后,系统会调用自身浏览器进程进行下一步网络访问,这很不符合我们的编程和使用习惯,以下方法重写可以自行定制其操作。

  1. // 此方法可以处理webview 在加载时和加载完成时一些操作   
  2.         web.setWebChromeClient(new WebChromeClient() {  
  3.             @Override  
  4.             public void onProgressChanged(WebView view, int newProgress) {  
  5.                 if (newProgress == 100) { // 这里是设置activity的标题,   
  6.                     // 也可以根据自己的需求做一些其他的操作   
  7.                     setTitle("加载完成");  
  8.                 } else {  
  9.                     setTitle("加载中.......");  
  10.   
  11.                 }  
  12.             }  
  13.         });  
  14.   
  15.         web.setWebViewClient(new WebViewClient() {  
  16.             @Override  
  17.             public boolean shouldOverrideUrlLoading(WebView view, String url) { // 重写此方法表明点击网页里面的链接还是在当前的webview里跳转,不跳到浏览器那边   
  18.                 view.loadUrl(url);  
  19.                 return true;  
  20.             }  

相关内容