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

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

作者: 默默_大魔王 | 来源:发表于2019-11-22 14:25 被阅读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);
    
        }
    

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

    相关文章

      网友评论

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

          本文链接:https://www.haomeiwen.com/subject/aytqwctx.html