这个问题已经有了答案:
android Not allowed to load local resource:file:///android_asset
5答
我从远程服务器加载html文件并在webview中显示它们,但是我的语言的默认字体有点混乱,所以我尝试从asset文件夹加载字体。这是我的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
解决这个问题的办法是什么?
最佳答案
最后,我在服务器上添加了该字体并在html文件中链接到该字体。我尝试了几乎所有的方法,我认为这是唯一可行的方法。在html中使用css和js等外部文件时,不能使用loaddatawithbaseurl和在asset文件夹中添加字体。
关于android - 从 Assets 文件夹加载字体,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20114815/