Первый маленький фонКак получить идентификатор хромированной приложения от расширения
Я была поставлена задача создания «программы», которая будет делать скриншоты веб-страниц в определенные моменты времени в течение дня и сохранить изображений в папку, доступную пользователю. Моя первоначальная мысль заключалась в том, чтобы создать расширение для выполнения этой работы, но вскоре я понял, что расширения не имеют доступа к файловой системе, поэтому я обратился к хром-приложениям, которые могут использовать API файловой системы. Тем не менее, хром-приложения не имеют доступа к функциям, необходимым для снятия скриншота с текущей страницы, поэтому я создал оба: расширение берет скриншот и отправляет его в приложение, которое сохраняет его в файловой системе , Процесс немного запутан, но работает как шарм.
Теперь связь с приложением/расширением происходит через хром Message Passing API. Для того, чтобы общение имело место, мне нужно заранее знать идентификатор расширения или приложения. Я до сих пор жестко закодировал идентификаторы, но учитывая, что эти идентификаторы будут меняться каждый раз, когда будет установлено расширение или приложение, мне нужен лучший подход.
Теперь Вопрос
Таким образом, вопрос: что является рекомендуемым способом, чтобы получить идентификатор хромированного приложения внутри расширения хрома и наоборот? План прямо сейчас использовать chrome.management API и выполните следующие действия:
В Extension
var APP_NAME = "Name of My App";
var _appId;
...
function initializeAppId() {
// must declare the "management" permission in the manifest
chrome.management.getAll(function(result) {
for (var i=0; i<result.length; i++) {
if (result[i].name == APP_NAME) {
_appId = result[i].id;
}
}
});
}
Это способ пойти об этом? Мне все равно придется жестко закодировать имя приложения, но это не так трагично, как жесткое кодирование его идентификатора. Кроме того, упакованные приложения не имеют доступа к управлению api, поэтому, если бы я пошел по этому маршруту, мне пришлось бы делать это только с расширением. Как только я получу идентификатор приложения, я могу отправить сообщение в приложение и предоставить идентификатор расширения, который можно легко получить из внутреннего кода.
Как это звучит? Какие-либо предложения?
Благодаря
Возможный дубликат [Получение идентификатора расширения Chrome для разработки] (http://stackoverflow.com/questions/23873623/obtaining-chrome-extension-id-for-development) – Xan
Вкратце: если вы создаете ключ, будет использоваться для приложения (и сохраните его, поскольку он вам понадобится при публикации), вы можете «привязать» идентификатор в манифесте. – Xan
Значения расширения/приложения будут жестко закодированы? Я активно избегал этого. –