Запуск Chrome упакованные приложения внутри вкладки браузера

Я хотел бы использовать новые API, предоставляемые для приложений, упакованных Chrome, но также хочу сохранить возможность открытия некоторого локального URL-адреса в моей текущей среде браузера, возможно ли это? Все упакованные приложения учебники ориентированы на создание отдельного окна и использование приложения в качестве первого класса гражданина в системе.

может его можно как-то использовать chrome.socket и другие API, как обычно, возможно даже только в режиме разработчика?

2 ответов


нет, это невозможно по дизайну. Упакованные приложения Chrome работают отдельно от браузера и не имеют доступа к функциям браузера, таким как вкладки. Самое близкое, что вы можете получить, это открыть внешний (не в упакованном приложении) URL-адрес в окне браузера.открыть.

однако вы можете эмулировать браузер, используя тег webview. См.код образца браузера научиться делать это.

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


Edit: это не поддерживается/вероятно, сломается в Chrome 44/45+ или около того. Около 3 марта был обзор кода, который действительно разбивает окно.открыт с фоновой страницы,но был временно отменен. Так что ожидайте, что это не сработает, начиная с Chrome 50?

на самом деле можно (в Chrome 43) запустить приложение chrome platform packaged на вкладке браузера. Со своей фоновой страницы просто позвоните window.open с URL-адресом некоторого контента в вашем приложении. например, если index.html в вашей каталог приложения, он откроет ваше приложение на вкладке браузера с URL chrome-extension://{{ extension id }}/index.html

это не должно требовать каких-либо дополнительных разрешений манифестов.

обратите внимание, что он не будет работать, если вы просто введите URL-адрес chrome-extension://{{ extension id }}/index.html в вашем браузере. Вам нужно открыть его из фонового сценария приложения.