WebView笔记

2018-12-20  本文已影响0人  轻舟_TG
private void initWebView() {
    //支持javascript
    webView.getSettings().setJavaScriptEnabled(true);
    // 设置可以支持缩放
    webView.getSettings().setSupportZoom(true);
    // 设置出现缩放工具
    webView.getSettings().setBuiltInZoomControls(true);
    //扩大比例的缩放
    webView.getSettings().setUseWideViewPort(true);
    //自适应屏幕
    webView.getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);
    webView.getSettings().setLoadWithOverviewMode(true);
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        //Android WebView 部分图片显示不出来问题
        webView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
    }


    //如果不设置WebViewClient,请求会跳转系统浏览器
    webView.setWebViewClient(new WebViewClient() {

        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            //该方法在Build.VERSION_CODES.LOLLIPOP以前有效,从Build.VERSION_CODES.LOLLIPOP起,建议使用shouldOverrideUrlLoading(WebView, WebResourceRequest)} instead
            //返回false,意味着请求过程里,不管有多少次的跳转请求(即新的请求地址),均交给webView自己处理,这也是此方法的默认处理
            //返回true,说明你自己想根据url,做新的跳转
            view.loadUrl(url);
            return true;
        }

        @Override
        public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request)
        {
            //返回false,意味着请求过程里,不管有多少次的跳转请求(即新的请求地址),均交给webView自己处理,这也是此方法的默认处理
            //返回true,说明你自己想根据url,做新的跳转
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
                view.loadUrl(request.getUrl().toString());
                return true;
            }

            return false;
        }

    });
    webView.loadUrl("网址");
}


/**
 * 响应返回键
 */
public void responseReturnKey() {
    if(webView != null && webView.canGoBack()){
        webView.goBack();
    }else{
        finish();
    }
}
上一篇 下一篇

猜你喜欢

热点阅读