• android webview网页控件


    一个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"/>
  • 相关阅读:
    使用WebAPI流式传输大文件(在IIS上大于2GB)
    网页扫描仪图像上传
    网页高拍仪图像上传
    C++
    Tomcat Connector三种执行模式(BIO, NIO, APR)的比較和优化
    编程精粹--编写高质量C语言代码(1):假想编译程序
    一个软件项目的总纲性的測试计划叫什么?
    Java字符串的格式化与输出
    Servlet入门(第一个Servlet的Web程序)
    求职小技巧,赢得大机会
  • 原文地址:https://www.cnblogs.com/wuyou/p/3537368.html
Copyright © 2020-2023  润新知