Используйте шрифты TTF из каталога файлов приложения в Android WebView - PullRequest
0 голосов
/ 12 ноября 2018

Мне нужно реализовать WebView, который может отображать HTML в автономном режиме.В HTML можно использовать несколько шрифтов, и я загружаю их все в файлы приложения dir, полученные с помощью context.getFilesDir().

Моя цель: «подать» эти файлы шрифтов в WebView таким образом, чтобы визуализированный HTML выглядел правильно.

То, что я пробовал до сих пор.

Привязать HTML к WebView следующим образом:

baseUrl = "file:///data/user/0/com.myapp/files/fonts"; // this is for convenience, I don't hardcode like this in code
webView.loadDataWithBaseURL(baseUrl, html, "text/html; charset=utf-8", "UTF-8", null);

Указанная папка содержит все загруженные шрифты.

И я также добавляю @font-face конфигурацию к заголовку HTML следующим образом:

<html>
 <head> 
  <meta http-equiv="content-type" content="text/html; charset=UTF-8"> 
  <style id="fonts">@font-face { font-family: Guttman Stam; src: url(/Guttman Stam.ttf); }</style>
 </head> 
 <body>
  <p><span style="background-color:#FFFFFF;font-family:Guttman Stam;font-size:26pt;">text</span></p> 
 </body>
</html>

Я убедился, что файл /data/user/0/com.myapp/files/fonts/Guttman Stam.ttf существует.

К сожалению, он не работает.Я также попытался указать полные пути в конфигурации @font-face, используя null и "" в качестве baseUrl WebView, но не повезло.

Итак, я немного растерялся.Помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 12 ноября 2018

Я использовал это давно, не уверен, что это будет работать для вашего случая, просто используйте его для справки

 String finalDataToLoad = "<link rel=\"stylesheet\" type=\"text/css\" href=\"file:///android_asset/font_helvetica.css\"  />" + YOUR_HTML;

 webView.loadDataWithBaseURL("file://" + outPutFolder, finalDataToLoad, "text/html", "utf-8", null);

outPutFolder - это то место, где у меня были изображения

У меня был шрифт в папке активов

...