2013-09-24 3 views
1

Итак, у меня есть расширение хром, работает в фоновом режиме. И каждые несколько часов он использует API уведомлений, чтобы задать вопрос пользователю.Расширение Chrome: открытое окно во время работы в фоновом режиме

Если они нажмут один ответ, мы откроем вкладку в текущем окне.

Проблема: если не открываются хромированные окна (т. Е. Расширение работает как часть опции «Разрешить запуск Chrome в фоновом режиме»), вкладка не открывается.

Вот код, который отлично работает до тех пор, пока, по крайней мере один хром открыть окно:

// tried this too: chrome.windows.create(); 
chrome.tabs.create({url: pathToGo}); 

Как сделать «chrome.windows.create()» на самом деле сделать окно, если их нет уже открыт.

+0

Похоже на ожидаемое поведение для меня. Что делает консоль ошибок для отчетов фоновой страницы? Может быть, вы можете поставить в очередь запрос tab.create и ждать, пока пользователь решает снова открыть браузер? – Andrey

+0

Да, это то, что я думаю - они не хотят, чтобы вы заставляли открывать окна. – Chris

+0

И не может видеть консоль, поскольку наличие инспектора открытым считается окном, так что он отлично работает. – Chris

ответ

0

Использование chrome.windows.getAll(object getInfo, function callback) API для получения всех открытых окон. Если в обратном вызове массив окон пуст, создайте новое окно, используя chrome.windows.create(object createData, function callback).

Используйте chrome.notifications API, если вы не можете создать новое окно. http://developer.chrome.com/extensions/notifications.html

+0

Спасибо, но, как я прокомментировал в своем фрагменте, я уже пробовал метод chrome.windows.create(), и он открывает только новое окно, если открылось еще одно окно. – Chris

+0

В этом случае лучше использовать API-интерфейсы 'chrome.notifications'. – boring

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