asasasdasfaf
caolin-tech
采纳率75%
2018-05-25 06:37

android webView 修改页面字体颜色

5
已采纳
    webview加载一个界面后,在onPageFinished中加入修改页面字体颜色css,如下String nightCode = "";
    try {
        InputStream is = getResources().openRawResource(R.raw.day);
        byte[] buffer;
        buffer = new byte[is.available()];
        is.read(buffer);
        is.close();
        nightCode = Base64.encodeToString(buffer, Base64.NO_WRAP);
    } catch (IOException e) {
        e.printStackTrace();
    }
    mWeb.loadUrl("javascript:(function() {"
            + "var parent = document.getElementsByTagName('head').item(0);"
            + "var style = document.createElement('style');"
            + "style.type = 'text/css';"
            + "style.innerHTML = window.atob('" + nightCode + "');"
            + "parent.appendChild(style)" + "})();");

            加载完成后,每次都是先显示原来的页面,过一秒左右在页面所有字体颜色都修改了,有什么办法显示页面之前就替换好字体颜色,先谢谢各位了。
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

10条回答

  • xingchenshi xingchenshi 3年前

    交给前端人员处理,不是你能解决的。

    点赞 评论 复制链接分享
  • qq_32117641 winrh 3年前

    可以用行内样式,虽然不规范

    点赞 评论 复制链接分享
  • afei1437 afei1437 3年前

    提取前面的样式就可以了

    点赞 评论 复制链接分享
  • yztbydh 最爱吃葡萄 3年前

    你这个的原因是:**在onPageFinish的时候再修改数据,页面已经加载完了,所以才会有这种过了一会再变的效果**

    解决方案1:

    自己读取网页数据,更改对应的样式之后,再加载页面

    解决方案2:

    WEB端提供接口,根据不同的API返回不同的样式

    点赞 1 评论 复制链接分享
  • intmainhhh pyai.top 3年前
  • qq_41224352 正在学习自动化测试的柠檬 3年前

    写到页面元素的标签里面,可以吧

    点赞 1 评论 复制链接分享
  • weixin_41630693 潴头 3年前

    #include
    using namespace std;

    int main()
    {
    /*
    代码
    */

    system("pause");
    return 0;
    }

    点赞 评论 复制链接分享
  • qq_36661375 叼着烟吻着你的香 3年前

    提取公共的样式,就可以搞定

    点赞 3 评论 复制链接分享
  • genimi_123 genimi_123 3年前

    写到页面元素的标签里

    点赞 评论 复制链接分享
  • a718089112 a718089112 3年前

    别用js修改样式啊,直接在页面把样式写到页面元素的标签里面

    点赞 评论 复制链接分享

为你推荐