一个WebView的简单例子 。
在开发过程中应该注意几点:
1.AndroidManifest.xml中必须使用许可"android.permission.INTERNET",否则会出Web page not available错误。
2.如果访问的页面中有Javascript,则webview必须设置支持Javascript。
webview.getSettings().setJavaScriptEnabled(true);

3.如果页面中链接,如果希望点击链接继续在当前browser中响应,而不是新开Android的系统browser中响应该链接,必须覆盖 webview的WebViewClient对象。

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"              android:orientation="vertical"              android:layout_width="match_parent"              android:layout_height="match_parent">    <WebView            android:id="@+id/webview"            android:layout_width="fill_parent"            android:layout_height="fill_parent"/></LinearLayout>

package com.example.basicUI;import android.os.Bundle;import android.support.v4.app.FragmentActivity;import android.view.KeyEvent;import android.view.View;import android.webkit.WebSettings;import android.webkit.WebView;import android.webkit.WebViewClient;import android.widget.ZoomButtonsController;import java.lang.reflect.Field;/** * 作者:Heyiyong,2014年2月1日23:53:18 */public class MainActivity extends FragmentActivity {    private WebView webView;    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        webView = (WebView) findViewById(R.id.webview);        webView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);        WebSettings webSettings = webView.getSettings();        webSettings.setJavaScriptEnabled(true);        webSettings.setBuiltInZoomControls(true);        webView.loadUrl("http://www.baidu.com/");        setZoomControlGone(webView);        webView.setWebViewClient(new MyWebViewClient());    }    /**     * 为了能够响应链接继续在本webview控件中显示,要声明此类。     * 如果没有这个类,点击了一个链接后,系统会自动选择浏览器浏览     */    private class MyWebViewClient extends WebViewClient {        @Override        public boolean shouldOverrideUrlLoading(WebView view, String url) {            view.loadUrl(url);            return true;        }    }    /**     * 设置webview的后退,如果后退没有网页了,则关闭该activity     */    public boolean onKeyDown(int keyCode, KeyEvent event) {        if ((keyCode == KeyEvent.KEYCODE_BACK) && webView.canGoBack()) {            webView.goBack();            return true;        }        return super.onKeyDown(keyCode, event);    }    /**     * 隐藏放大缩小控件     */    public void setZoomControlGone(View view) {        Class classType;        Field field;        try {            classType = WebView.class;            field = classType.getDeclaredField("mZoomButtonsController");            field.setAccessible(true);            ZoomButtonsController mZoomButtonsController = new ZoomButtonsController(                    view);            mZoomButtonsController.getZoomControls().setVisibility(View.GONE);            try {                field.set(view, mZoomButtonsController);            } catch (IllegalArgumentException e) {                e.printStackTrace();            } catch (IllegalAccessException e) {                e.printStackTrace();            }        } catch (SecurityException e) {            e.printStackTrace();        } catch (NoSuchFieldException e) {            e.printStackTrace();        }    }}

 <uses-permission android:name="android.permission.INTERNET"/>

更多相关文章

  1. 安全新手入坑——HTML标签
  2. Nginx系列教程(四)| 一文带你读懂Nginx的动静分离
  3. Android查看数据库工具sqlitemanager
  4. 如何设置Android中控件的颜色透明度
  5. Android中关于画廊控件的使用
  6. 最近总结的android疑惑(二)
  7. Android(安卓)音乐裁剪器
  8. PreferenceFragment详解
  9. Android菜单menu控件大全

随机推荐

  1. Gartner:政府CIO将在2018年增加云、网络安
  2. pmp是什么意思?pmp值得学吗?
  3. 一文深入理解快照技术
  4. 双活距离太远为啥用波分,容灾链路设计关键
  5. Kubernetes集群组件的安全
  6. 知识干货: GPU关键参数和应用场景
  7. Linus Torvalds 称英特尔的补丁为“垃圾
  8. 实战: 如何掌握Oracle和业务IO知识
  9. 详解: Docker原生网络和主流优化方案
  10. 通俗解读NVMe前世今生