webview文字颜色一直显示黑色问题,以及解决方法

2019-11-22  本文已影响0人  默默_大魔王
image

今天测试提了一bug,有一个网页,手机端显示有问题,有一个网页标题,后台设置的是红色标题,在手机端显示的时候,ios可以正常显示,安卓不能正常显示,安卓上显示的是黑色的。如下如图:

安卓上效果
ios上是一下效果
//
//
//
//
表示不服啊有木有
ios上效果

一下是代码安卓代码,这行代码文字是黑色的:


代码1

一下代码是修改好的代码,文字标题是红色的:


代码2 代码二效果 文字虽然改成红色的了,但是,web'view好像是用浏览器现实的,不是手机端的样式了,然后就把自适应去掉了 image.png

完美问题解决了,但是你会发现,里面如果有图片的话,会超出屏幕,解决方案,遍历所有图片,为所有图片设置宽度占100%,高度自适应。


image.png
问题解决了,以下是贴出来的代码!!!!
黑色标题代码:
//    public WebHelper(Context context, WebView webView){
//        mWebView=webView;
//        // TODO Auto-generated method stub
////        String release = android.os.Build.VERSION.RELEASE;
////        release = release.substring(0, 3);
////        if ("4.4".equals(release)) {
////            mWebView.setWebViewClient(new MyWebViewClient());
////        } else {
////            mWebView.setVisibility(View.VISIBLE);
////            ws = mWebView.getSettings();
////            WebSettings ws = mWebView.getSettings();
////            ws.setJavaScriptEnabled(true);
////            ws.setBlockNetworkImage(false);
////            ws.setAllowFileAccess(true);
////            ws.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);
////            ws.setDefaultTextEncodingName("utf-8”);
////            ws.setTextSize(WebSettings.TextSize.NORMAL);
////            ws.setAppCacheEnabled(false);
////            ws.setDomStorageEnabled(true);
////            ws.setRenderPriority(WebSettings.RenderPriority.HIGH);
////
////            mWebView.setFocusable(false);
////            if (android.os.Build.VERSION.SDK_INT >= 8) {
////                ws.setPluginState(WebSettings.PluginState.ON);
////            }
////            ws.setRenderPriority(WebSettings.RenderPriority.HIGH);
////            mWebView.setWebViewClient(new WebViewClientDemo());
////            mWebView.setWebChromeClient(new WebViewChromeClientDemo());
////            mWebView.setHorizontalScrollBarEnabled(false);
////            mWebView.setVerticalScrollBarEnabled(false);
////            mWebView.setFocusable(false);
////            mWebView.setWebViewClient(new WebViewClient());
////            mWebView.getSettings().setJavaScriptEnabled(true);
////            mWebView.setWebChromeClient(new WebChromeClient() {
////                @Override
////                public void onProgressChanged(WebView webView, int i) {
////                    super.onProgressChanged(webView, i);
////                }
////            });
//
////            mWebView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
////            mWebView.getSettings().setDomStorageEnabled(false);
////            mWebView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
////            // 自适应屏幕
//////            mWebView.getSettings().setUseWideViewPort(true);//让webview读取网页设置的viewport,pc版网页 
//////            mWebView.getSettings().setLoadWithOverviewMode(true);
////            mWebView.getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NARROW_COLUMNS);
//
////        }
//    }

修改后的代码:

 1 public static void setWebImageClick(WebView view,String method) {
        String jsCode="javascript:(function(){“ +
                "var imgs=document.getElementsByTagName(\"img\");” +
                "for(var i=0;i<imgs.length;i++){“ +
                "imgs[i].pos = i;”+
                "imgs[i].style.maxWidth = '100%'; imgs[i].style.height = 'auto'; “+
                "imgs[i].onclick=function(){“ +
                "window."+method+".openImage(this.src,this.pos);" +//这行代码是给webview里面所有图片加点击事件,获取图片数组,跳转新的activity查看大图效果
                "}}})()”;
        view.loadUrl(jsCode);
    }
 private void setData(String data) {
        imgs = WebHelper.returnImageUrlsFromHtml(data);
        imageJavascriptInterface=new ImageJavascriptInterface(context,imgs);
        mWebView.addJavascriptInterface(imageJavascriptInterface, method);
        mWebView.loadData(data,"text/html; charset=UTF-8", null);
        mWebView.setWebViewClient(new WebViewClientDemo());
        mWebView.getSettings().setJavaScriptEnabled(true);
        mWebView.setWebChromeClient(new WebChromeClient() {
            @Override
            public void onProgressChanged(WebView webView, int i) {
                super.onProgressChanged(webView, i);
            }

        });

        mWebView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
        mWebView.getSettings().setDomStorageEnabled(false);
        mWebView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
        // 自适应屏幕
//        mWebView.getSettings().setUseWideViewPort(true);//让webview读取网页设置的viewport,pc版网页 
//        mWebView.getSettings().setLoadWithOverviewMode(true);
        mWebView.getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NARROW_COLUMNS);
        //registerForContextMenu(mWebView);

    }

具体问题出现在哪里还没找到,又知道的同学,可以评论区指教一下,谢谢!!!

上一篇 下一篇

猜你喜欢

热点阅读