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