android“字体已被阻止”

时间:2015-09-17 12:24:55

标签: android google-chrome webview

我想在android中使用来自web的ttf字体,但在加载时出错。

网页的Html:

<meta charset="utf-8" />
<style type="text/css">@font-face {
    font-family: pfbulletinsanspro-light; /* Гарнитура шрифта */
    src: url(https://s3.amazonaws.com/extrashop.images/demo/olymp/pfbulletinsanspro-light.ttf); /* Путь к файлу со шрифтом */
   }
   div {
    font-family: pfbulletinsanspro-light;
   }
</style>
<div><span style="font-size:26px;">Тестовая страница<br />
Съешьте еще этих мягких французских булок</span></div>

Android代码:

    webView = (WebView) res.findViewById(R.id.webView);
    webView.requestFocus(View.FOCUS_DOWN);
    webView.setWebViewClient(new LoadLinkWebViewClient());

    webView.setWebChromeClient(new WebChromeClient());
    webView.getSettings().setJavaScriptEnabled(true);
    webView.loadUrl(url, new HashMap<String, String>() {
            {
                put("Access-Control-Allow-Origin","*");
            }
        });

我从铬中得到错误

  

“来自'https://s3.amazonaws.com'的字体有   被跨域资源共享政策阻止加载:否   请求中存在“Access-Control-Allow-Origin”标头   资源。因此,不允许我的网站的原始'基本网址'   访问。“,来源:   '页面的网址'

1 个答案:

答案 0 :(得分:1)

出于安全原因,您无法引用位于第三方域中的字体。 你应该下载字体并将其放入&#34;资产&#34;项目中的文件夹并从那里引用

src: url('../fonts/pfbulletinsanspro-light.ttf');

或以编程方式下载注入。