Подтвердить что ты не робот

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

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

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

4b9b3361

Ответ 1

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

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

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

Ответ 2

Изменить: это неподдерживается/может переломиться в Chrome 44/45 + или так. Было около 3 марта обзор кода, который действительно разбивает window.open со справочной страницы, но временно отменяется. Поэтому ожидайте, что это не будет работать, начиная с Chrome 50?

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

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

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