webview模板

交互文档:https://doc.gxb.io/dcdoc/chang-jian-wen-ti/jiao-hu-xiang-guan.html

1.java:

setWebView(authUrl);
   private void setWebView(String url) {
        final String[] whiteList = {"taobao://", "alipayqr://", "alipays://", "wechat://", "weixin://", "mqq://", "mqqwpa://", "openApp.jdMobile://"};

        WebSettings settings = web_view.getSettings();
        //支持JavaScript脚本
        settings.setJavaScriptEnabled(true);
        //设置WebView支持广泛的视窗
        settings.setUseWideViewPort(true);
        //支持手势缩放
        settings.setBuiltInZoomControls(true);
        //设置WebView 支持加载更多格式页面
        settings.setLoadWithOverviewMode(true);
        //WebView加载页面优先使用缓存加载
        settings.setCacheMode(WebSettings.LOAD_NO_CACHE);
        //LOAD_CACHE_ONLY: 不使用网络,只读取本地缓存数据
        //LOAD_DEFAULT: 根据cache-control决定是否从网络上取数据。
        //LOAD_CACHE_NORMAL: API level 17中已经废弃, 从API level 11开始作用同LOAD_DEFAULT模式
        //LOAD_NO_CACHE: 不使用缓存,只从网络获取数据.
        //LOAD_CACHE_ELSE_NETWORK,只要本地有,无论是否过期,或者no-cache,都使用缓存中的数据。


        //主要用于加载网页过程的监听。
        web_view.setWebViewClient(new WebViewClient() {

            @Override
            public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
                handler.proceed();  // 接受所有网站的证书
                super.onReceivedSslError(view, handler, error);
            }

            @Override
            //只要重写此方法,就能在本应用中加载网页
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                for (String s: whiteList) {
                    //判断url如果是在Schemes的白名单里,就启动对于的app,如果不是直接加载url
                    if (url.startsWith(s)) {
                        try {
                            Intent intent = Intent.parseUri(url, Intent.URI_INTENT_SCHEME);
                            intent.addCategory(Intent.CATEGORY_BROWSABLE);
                            startActivity(intent);
                            return true;
                        } catch(Exception e) {
                            e.printStackTrace();
                        }
                    }
                }
                view.loadUrl(url);
                return true;
//                return false;//返回值时true的时候控制网页在WebView中去打开,如果为false调用系统浏览器或第三方浏览器
            }

            @Override
            public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { //收到错误信息的时候,系统执行此操作.//比如当出现404错误码时,我们可以自己写个html放在asset文件夹中,把webView隐藏掉而显示本地的网页。
                LogUitl.e("=======setWebView=========onReceivedError:"+description+","+failingUrl+","+errorCode);
            }

            @Override
            public void onPageStarted(WebView view, String url, Bitmap favicon) {
                super.onPageStarted(view, url, favicon);    //若想在网页开始加载时执行一些操作,重写该方法
                LogUitl.e("=======setWebView=========onPageStarted:"+url);
            }

            @Override
            public void onPageFinished(WebView view, String url) {
                super.onPageFinished(view, url);    //若想在网页结束时执行一些操作,重写该方法
                //todo
                LogUitl.e("=======setWebView=========onPageFinished:"+url);
//                finish();    //网页加载比较慢出来,不要finish
            }
        });
        web_view.loadUrl(url);
//        //主要用于加载网页过程对UI的操作。
//        web_view.setWebChromeClient(new WebChromeClient() {
//            @Override
//            public void onProgressChanged(WebView view, int newProgress) {
//                super.onProgressChanged(view, newProgress);//newProgress的值为1到100的整数,我们可以利用这个参数使用ProgressBar或ProgressDialog显示加载进度
//                LogUitl.e("=======setWebView=========onProgressChanged:"+newProgress);
//            }
//
//            @Override
//            public void onReceivedTitle(WebView view, String title) {
//                super.onReceivedTitle(view, title);//参数title为网页的标题,可以用一个textView来显示。
//                LogUitl.e("=======setWebView=========onReceivedTitle:"+title);
//            }
//        });


    }

2.xml:

<?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">

    <include layout="@layout/xjd_title_common_ui"/>

    <WebView
        android:id="@+id/web_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent"></WebView>
</LinearLayout>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值