Разработка расширений Chrome с использованием NPAPI в C ++ - PullRequest
5 голосов
/ 22 февраля 2012

Я хочу разработать простое расширение для Chrome на C ++, используя NPAPI, который выполняет функцию выгрузки содержимого HTML текущей страницы в файл. У меня нет большого опыта в разработке плагинов / расширений. Как мне начать это?

Ответы [ 2 ]

9 голосов
/ 22 февраля 2012

1 - Создать расширение ... http://code.google.com/chrome/extensions/getstarted.html

2 - Создать плагин NPAPI ... http://colonelpanic.net/2009/03/building-a-firefox-plugin-part-one/

3 - В манифесте вашего расширения добавьте плагин ...

"plugins": [
    { "path": "your_npapi_plugin.dll" }    
  ],

4 - на странице вашего расширения создайте плагин

<script>
var plugin = document.getElementById("MyNPAPIPluginId");
...
</script>

5 - Создайте JavaScript, который вы будете использовать в качестве скрипта контента, внедряемого на каждой странице. С помощью этого сценария свяжись со своим объектом сценариев npapi и сделай работу, которую ты хочешь сделать.


Как мне получить значение MyNPAPIPluginId? Все, что у меня есть, это имя DLL?

На вашей фоновой странице, когда вы добавляете тег вашего плагина, вы помещаете идентификатор

<embed type="application/my-plugin-mimetype" id="MyNPAPIPluginId">

В Windows вы добавляете MIMEType в файл ресурсов DLL, добавляете запись с:

VALUE "MIMEType", "application/my-plugin-mimetype"
4 голосов
/ 22 февраля 2012

Здесь есть плагин, который поможет вам ....
http://code.google.com/p/npapi-file-io/
... источник тоже есть.Этот плагин позволит вам написать строку (ваш HTML) в файл, а также несколько других приятных вещей.К сожалению, только для Windows и Linux.
Тогда все, что вам нужно сделать, - это написать скрипт для дампа того, что вы хотите.

Как отмечает Сморган в комментариях, плагины такого типа могут быть довольно опасными.
Поэтому убедитесь, что при добавлении плагина в манифест вы задаете для общедоступного свойства значение false ...
http://code.google.com/chrome/extensions/npapi.html

 "plugins": [
    { "path": "plugin.dll", "public": false }
  ]

А в будущем (Chrome 18) вам следует использовать версию манифеста 2 ...
http://code.google.com/chrome/extensions/trunk/manifestVersion.html

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...