Наше приложение загружает и отображает внешний пользовательский контент, который включает в себя пользовательские, фирменные шрифты Для Интернета, рабочего стола и Android мы просто используем внешние SWF-файлы со встроенными шрифтами. Имеет технический смысл, почему этот метод не будет работать для iOS, но я не смог найти никаких альтернатив. Это просто невозможно? Надеюсь, что это не так, поскольку это означает, что наше приложение невозможно для iOS с использованием мобильных технологий AIR.
Эрик
Редактировать для деталей:
Позвольте мне подробнее рассказать об этом процессе. На сервер загружен PDF. Затем мы анализируем и извлекаем содержимое из PDF, включая шрифты для каждой страницы. Эти шрифты часто полностью индивидуальны и предпочтительны для владельца контента, поскольку в них хранятся символы для математических и других нестандартных символов. Когда мы извлекаем эти шрифты, мы назначаем шрифт уникальному идентификатору, внедряем его и компилируем в SWF. Когда этот контент запрашивается у клиента, у нас есть список шрифтов для него. Мы загружаем все SWF-файлы, содержащие эти шрифты, а затем загружаем и регистрируем шрифты. Вот пример SWF, который мы сносим. Это полная информация о скомпилированном SWF-файле.
package {
import flash.display.Sprite;
import flash.text.Font;
import flash.system.Security;
public class F9471cf2d10924f87820ae61a30dd4b8f extends Sprite
{
[Embed(source='TempF9471cf2d10924f87820ae61a30dd4b8f.swf',symbol='F9471cf2d10924f87820ae61a30dd4b8f')]
public static var F9471cf2d10924f87820ae61a30dd4b8f:Class;
public function F9471cf2d10924f87820ae61a30dd4b8f()
{
Security.allowDomain("*");
Security.allowInsecureDomain("*");
Font.registerFont(F9471cf2d10924f87820ae61a30dd4b8f);
}
}
}
У нас нет коллекции этих шрифтов для хранения в каких-либо библиотеках. Это все динамически генерируемый контент, поэтому мы должны иметь возможность загружать и регистрировать шрифты по требованию, без предварительного знания шрифта.