• android--------WebView实现 Html5 视频标签加载


    自Android 4.4起,Android中的WebView开始基于Chromium(谷歌浏览器)支持浏览器的一系列功能,webkit解析网页各个节点,这个改变,使得WebView的性能大幅度提升,并且对HTML5, CSS3, and JavaScript有了更好的支持。

    案列主要介绍WebView加载带有HTML5的视频标签<video/>的网页,点击网页里面的链接还是在当前的webview里跳转,不跳到浏览器那边,防止WebView内存泄漏等。

    效果图:

          

    Html网页图:

         

    public class MainActivity extends Activity {
    
        private WebView webView;
        private String url = "http://lbh.zhangwoo.cn/?m=home&c=index&a=home";
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            initWebView();
        }
    
        @SuppressWarnings("deprecation")
        @SuppressLint("SetJavaScriptEnabled")
        private void initWebView() {
            webView = (WebView) findViewById(R.id.activity_webview);
            webView.requestFocus();
            webView.setHorizontalScrollBarEnabled(false);
            webView.setVerticalScrollBarEnabled(false);
            WebSettings web = webView.getSettings();
            web.setJavaScriptEnabled(true);
            web.setBuiltInZoomControls(true);
            web.setSupportZoom(true);
            web.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NARROW_COLUMNS);
            web.setUseWideViewPort(true);
            web.setLoadWithOverviewMode(true);
            web.setSavePassword(true);
            web.setSaveFormData(true);
            //web.setBlockNetworkImage(true);// 把图片加载放在最后来加载渲染
    
            webView.loadUrl(url);
            webView.setWebViewClient(new WebViewClient() {
                @Override
                public boolean shouldOverrideUrlLoading(WebView view, String url) {
                    // 重写此方法表明点击网页里面的链接还是在当前的webview里跳转,不跳到浏览器那边
                    view.loadUrl(url);
                    return true;
    
                }
    
                @Override
                public void onReceivedSslError(WebView view,
                        SslErrorHandler handler, SslError error) {
                    // 重写此方法可以让webview处理https请求
                    handler.proceed();
                }
            });
        }
    
        @Override
        // 设置回退
        // 覆盖Activity类的onKeyDown(int keyCoder,KeyEvent event)方法
        public boolean onKeyDown(int keyCode, KeyEvent event) {
            if ((keyCode == KeyEvent.KEYCODE_BACK) && webView.canGoBack()) {
                webView.goBack(); // goBack()表示返回WebView的上一页面
                return true;
            }
            return false;
        }
    
        /***
         * 防止WebView加载内存泄漏
         */
        @Override
        protected void onDestroy() {
            super.onDestroy();
            webView.removeAllViews();
            webView.destroy();
        
    }

    网络权限

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

    源码点击下载:https://github.com/DickyQie/android-webview

  • 相关阅读:
    关于游戏
    学习lucene5.5.4的笔记
    lucene中文学习地址推荐
    lucene的使用与优化
    进一步了解this和super
    被遗忘的设计模式——空对象模式(Null Object Pattern)
    Java 空对象设计模式(Null Object Pattern) 讲解
    java的动态代理机制详解
    为什么要使用代理模式
    大O 表示法
  • 原文地址:https://www.cnblogs.com/zhangqie/p/6170493.html
Copyright © 2020-2023  润新知