2015-04-09 5 views
0

Я новичок в разработке расширений Chrome, и я немного борюсь с архитектурой, созданной на месте. Я хотел бы разработать расширение (browser_action), которое при нажатии кнопки открывает окно, в котором информация будет заполняться из WebTraffic. Я понял, что могу использовать API WebRequest для получения информации о трафике.Борьба с архитектурой Chrome Extension

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

Я попытался создать фоновое окно, но оно не отображается.

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

Заранее спасибо

ответ

0

Вам нужны оба.

Посмотрите на Architecture Overview, или, может быть, this question.

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

Фоновая страница постоянно присутствует, но невидима. Это, как правило, «мозг» расширения, заботясь о тяжелых сообщениях и сообщениях маршрутизации в другие части.

Короче:

  1. Вам нужен фоновый скрипт для сбора webRequest для Вас информацию в некотором формате.

  2. Для его отображения требуется всплывающее окно. Имейте в виду, что он не гарантированно присутствует в данный момент времени и может закрыться в любое время.

  3. Возможно, лучше всего использовать Messaging, чтобы запросить информацию со справочной страницы. Если вам нужны обновления в реальном времени, вы можете использовать долгоживущие подключения.

    В вашем случае вы также можете плотно соединить двух и позвонить chrome.runtime.getBackgroundPage(), чтобы напрямую ссылаться на них.

+0

Большое спасибо за ваш ответ. Я просмотрел ссылки, которые вы мне прислали, но пока неясно. Поведение, которое я хотел бы достичь, заключается в том, что когда пользователь нажимает кнопку расширения, открывается окно браузера и остается там до тех пор, пока я не закрою его. Затем, из всплывающего окна, я должен иметь возможность запускать/останавливать сбор данных, а когда коллекция «включена», я должен увидеть результаты в окне вывода. Как я мог это достичь? (в основном, то, что я хотел бы отобразить, - это файлы cookie, отправленные и полученные). Большое спасибо – jnc

+0

Вы можете открыть вкладку/окно с вашим пользовательским html-файлом: 'chrome.extension.getURL ('somepage.html')', где «somepage.html» - это файл в каталоге расширения. Вы можете получить доступ к исходной странице из этого файла: 'var bg = chrome.extension.getBackgroundPage()' или используя обмен сообщениями. –

+0

Итак, вы хотите, чтобы оба отображали всплывающее окно и окно? – Xan