Проблема при загрузке пользовательских шрифтов в Android 4.2 (API 17)

У меня есть статический html файл "myhtml.html", хранящийся в моем каталоге assets/html/, и этот html загружает пользовательский шрифт (хранящийся под активами/шрифтами/) следующим образом:

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

Я загружаю этот html, используя следующий код:

String html = getHtml(); // This method loads the myhtml.html from asset. This loads properly.
WebView webView = (WebView) findViewById(R.id.webbox);
WebSettings webSettings = webView.getSettings(); 
webSettings.setDefaultTextEncodingName("utf-8");
webSettings.setFixedFontFamily("fonts/myfont.ttf");
webView.loadDataWithBaseURL("file:///android_asset/", html, "text/html", "UTF-8", null);

Этот код отлично работает со всеми версиями Android, кроме Android 4.2 (API 17).

В Android 4.2 загружается HTML, но пользовательский шрифт не загружается.

Ответ 1

Я думаю, что это ошибка. Я подал https://code.google.com/p/android/issues/detail?id=54516

Если кто-то знает по-другому, пожалуйста, поправьте меня. Кроме того, если эта ошибка вас беспокоит, пожалуйста, запустите ее, чтобы привлечь больше внимания.

Ответ 2

Пожалуйста, используйте шрифт (svg). он работает для меня

Ответ 3

У меня та же проблема. Изменение

webView.loadDataWithBaseURL("file:///android_asset/", html, "text/html", "UTF-8", null);

к

webView.loadDataWithBaseURL("http://example.com", html, "text/html", "UTF-8", null);

устраняет проблему.