1) Каковы различные аспекты, которые мы должны сосредоточиться при разработке плагина?
Только вы знаете свои конкретные требования, и это зависит от технологии/структуры плагинов, с которой вы работаете - обработка всех возможностей сделает книгу, а не сообщение.
2) Какие лучшие платформы/рамки доступны из QtBrowserPlugin/NPAPI/XUL/firebreath и почему?
Как обычно нет ни одного лучший технологии:
- XUL - Это не плагин технологии.
- Plain NPAPI & ActiveX - Это основные базовые методы, от которых избавляются другие решения. Я бы этого не сделал, если у вас уже есть опыт разработки с теми или иными конкретными потребностями. Если другие варианты подходят для вас, я не буду тратить свое время здесь, особенно если вам нужно пройти кросс-платформу.
- QtBrowserPlugin - Если вы уже используете Qt, это должно быть хорошо подойдет, иначе учтите, что Qt - довольно тяжелая зависимость. Лицензия Qts может оказаться неприемлемой (LGPL или коммерческая).
- FireBreath - Более легкая, либеральная лицензия (двойной новый BSD/LPGL). Система сборки не подходит для каждой команды разработчиков. Однако, поскольку его совладелец может быть предвзятым.
3) Каковы общие/общие вопросы, которые могут возникнуть во время процесса плагин lifecyle?
Много путаницы, кажется, исходит из жизненный цикл - ваш плагин живет в хост-процесса и должен соответствовать его поведению.Плагины-экземпляры, их окна и их скриптовые объекты могут иметь совершенно разные жизненные пространства:
Возможно, экземпляры плагина могут быть повторно использованы, их окна не будут повторно использоваться, объекты сценариев, которые появляются из экземпляра плагина, могут выжить и т. Д. ..
4) Пожалуйста, передайте любой поваренной книге/указатели в этом отношении
Не для всех возможных вариантов технологии - выбрать один, а затем задавать более конкретные вопросы. Если вы решите полностью реализовать свой плагин, используя простой NPAPI & ActiveX, то, по крайней мере, источник FireBreath должен помочь вам прояснить некоторые вещи.