2012-01-27 1 views
5

Я использую Analytics в своем расширении Chrome. Я хочу выполнить код аналитики только в том случае, если расширение используется реальным человеком (а не мной, пока я работаю над ним). Являются ли какие-либо из следующих выполнимых и которые являются лучшими?Как узнать, установлено ли расширение для Chrome реальным пользователем или мной во время разработки?

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

  2. Имейте расширение, чтобы найти что-то, что характерно для моей среды. Я не уверен, что это такое (расширение является открытым исходным кодом, поэтому оно не может быть слишком частным).

  3. Имейте параметр «режим разработчика» на странице параметров. Возможность, но это означает, что любой, кто устанавливает расширение, может просто включить его.

  4. Установите переменную localStorage вручную и никогда не удаляйте ее. Возможность, но не лучшее решение, потому что, если оно когда-либо исчезнет, ​​мне придется сбросить его. И я должен помнить, что не удалять его, если я удалю ключи из localStorage.

  5. var useAnalytics = false при разработке, установите его значение true перед выпуском. Это не автоматическое, а вариант.

  6. Что-то еще?

+0

istead сделать это сложным. Не можете ли вы просто получить код аналитики в отдельном пустом JS-файле, а затем добавить код аналитики непосредственно перед выпуском. Протестируйте его в последний раз после обновления JS. – Shoban

+0

Я хочу делать такие вещи, как отслеживание кликов на разных кнопках в моем расширении. Если мне придется вручную удалять аналитику каждый раз, когда я занимаюсь разработкой, мне придется также удалить все эти заявления. Я бы сказал, что самым простым «ручным» способом было бы установить переменную где-то, называемую useAnalytics, и установить ее в false, пока я буду развиваться, а затем установить ее в true при отпускании. Я все же предпочитаю что-то автоматическое. –

ответ

8

Ваше расширение производства будет иметь один extension_id, что не изменится, пока ваш распакованы расширение будет иметь случайный extension_id, что изменится, если удалить и загрузить его снова. Вы можете использовать il8n API, чтобы получить оценку extension_id, если она соответствует продукции extension_id.

var extensionId = chrome.i18n.getMessage('@@extension_id');

+0

Это работает, хотя странно, что вы получаете идентификатор расширения через API i18n. Благодарю. –

+0

'@@ extension_id' предназначен для файлов CSS, поэтому вы можете использовать разные изображения на основе языка. Это просто хорошо работает для этого :) – abraham

Смежные вопросы