Настройте функцию автоматического обновления для расширений Chrome.

Итак, я работаю над расширением Chrome, которое не будет размещено в интернет-магазине Google, поэтому мне нужно будет добавить к нему функцию автоматического обновления, однако мне нужно, чтобы оно было немного более динамичным, я попытаюсь проиллюстрировать, что Я пытаюсь выполнить небольшой сценарий, чтобы это не казалось бессмысленным.

Сценарий

Мне нужно иметь расширение, которое имеет разные выпуски для каждой версии, то есть каждая версия имеет бесплатную версию и платную (многофункциональную) версию, и всякий раз, когда выпускается новая версия, расширение будет обновляться в соответствии с его изданием.

Другими словами, сервер должен иметь возможность определять версию пользователя и предоставлять файл crx в соответствии с ней, «т.е. динамический».

Что я пробовал/думаю

1. Я попытался установить файл cookie с выпуском расширения, поэтому, когда происходит автоматическое обновление, сервер может проверить его и сгенерировать файл xml, к сожалению, я обнаружил, что файлы cookie не отправляются в заголовки автообновления, отправленные хромом .

2. Я могу заставить расширение разговаривать с сервером при запуске Chrome, поэтому оно отправит свою версию, поэтому сервер сохранит ее вместе с IP-адресом, и когда произойдет автоматическое обновление, сервер проверит IP-адрес запроса и сопоставит его. это с изданием для предоставления xml, я думаю, это может сработать, но это довольно хромой метод.

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

4. Я пытался найти способ изменить параметры get-запроса (т.е. добавить пользовательские параметры, такие как издание), но, похоже, это невозможно сделать.

5. Я могу разделить разные выпуски на разные расширения (т.е. бесплатная версия будет в другом пакете, чем платная), однако мне интересно сделать все в одном, чтобы пользователь мог обновить/понизить свою подписку без установки/ удаление расширения, которое у них уже есть.

Я думаю, что это все, и я надеюсь, что у кого-то будет лучшее представление о том, как я могу выполнить то, что я пытаюсь сделать.

P.S. Я знаю, что название довольно расплывчатое, но я не смог найти лучшего, поэтому, если вы придумали лучшее название, сообщите мне.


person Mohammed Ibrahim    schedule 10.05.2012    source источник


Ответы (1)


Почему бы не сделать бесплатную версию 1.* и платную версию 2.*? Затем создайте свою страницу обновления динамически с помощью простой PHP-страницы, которая получает идентификатор и версию приложения (см. автообновление документов).

Поместите "update":"http://www.mysite.com/update_app.php в свой манифест. В вашем PHP-скрипте прочтите $_GET['version'] и отправьте XML-документ обновления, соответствующий основному номеру версии (1.* бесплатная версия, 2.* платная версия). По сути, держите на сервере два файла обновления XML (и два файла CRX), а сценарий решает, какой из них обслуживать.

Конечно, это не обязательно должен быть PHP; подойдет любой серверный язык.

person apsillers    schedule 10.05.2012
comment
Спасибо за ответ, а что, если пользователь захочет обновить/понизить свою подписку?! Есть идеи, как это можно реализовать?! Я пытаюсь упростить задачу для пользователя, когда он решит изменить свою подписку, автоматизировав часть повышения/понижения рейтинга вместо того, чтобы мешать ему работать с двумя расширениями или переустанавливать их, я думаю, что ваш подход позволит мне успешно объединить два выпуска, но пользователь не сможет изменить свою подписку, я прав или я что-то пропустил в вашем подходе?! - person Mohammed Ibrahim; 11.05.2012