【问题标题】:android "font has been blocked"android“字体已被阻止”
【发布时间】:2015-12-14 07:39:24
【问题描述】:

我想在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>

安卓代码:

    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","*");
            }
        });

我从 Chromium 收到错误

"来自 'https://s3.amazonaws.com' 的字体有 被跨域资源共享策略阻止加载:否 请求中存在“Access-Control-Allow-Origin”标头 资源。因此,Origin 'base url of my site' 是不允许的 访问。”,来源: '页面网址'

【问题讨论】:

标签: android google-chrome webview


【解决方案1】:

出于安全原因,您不能引用位于第 3 方域中的字体。 您应该下载字体并将其放入项目的“assets”文件夹中并从那里引用

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

或以编程方式下载注入。

【讨论】:

    猜你喜欢
    • 2018-07-03
    • 2018-12-10
    • 2017-11-18
    • 2022-01-01
    • 2021-01-07
    • 2015-12-17
    • 1970-01-01
    • 1970-01-01
    • 2016-10-21
    相关资源
    最近更新 更多