【问题标题】:Loading fonts from asset folder [duplicate]从资产文件夹加载字体[重复]
【发布时间】:2014-05-02 20:08:49
【问题描述】:

我从远程服务器加载 html 文件并在 webview 中显示它们,但我的语言的默认字体有点乱,所以我尝试从资产文件夹加载字体。这是我的java代码和html文件。

webView.getSettings().setAppCacheEnabled(false);
webView.getSettings().setAppCacheMaxSize(1);
webView.getSettings().setDomStorageEnabled(true);
webView.addJavascriptInterface(new WebAppInterface(this), "Android");
webView.setWebViewClient(new MyWebViewClient());
isShowing=true;
dialog.show();
String address="http://server/test.html";
Log.d("checking", address);
webView.loadUrl(address);

html代码:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">


<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title> Title Here </title>

    <style type="text/css">
    @font-face {
      font-family:nazanin;
      src:url('file:///android_asset/fonts/BNAZANIN.TTF');
    }

    body {
      font-family: nazanin;
      font-size: medium;
      text-align: justify;
    }

</style>

</head>

<body>

  <p>this is for test</p>

</body>
</html>

问题是加载后我得到了这个错误:

11-21 10:50:55.439:E/Web 控制台(9572):不允许加载本地资源:file:///android_asset/fonts/BNAZANIN.TTF at :0

解决办法是什么?

【问题讨论】:

  • 这个问题被错误地标记为重复,OP想要从外部url的webview访问字体,而不是读取带有本地.html文件的webview作为重定向......方式去社区...

标签: android webview


【解决方案1】:

我最终在服务器上添加该字体并在 html 文件中链接到该字体。我尝试了几乎所有方法,我认为这是唯一可行的方法。当您在 html 中使用 css 和 js 等外部文件时,LoadDataWithBaseUrl 和在资产文件夹中添加字体不是这种方式。

【讨论】:

    猜你喜欢
    • 2014-12-27
    • 2017-08-31
    • 1970-01-01
    • 2017-09-20
    • 2022-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多