0

Я создаю приложение Chrome, а не расширение. Люди могут получать и отправлять сообщения. Если я получаю сообщение, я получил уведомление и звук mp3. Если окно приложения открыто, я знаю, как сфокусировать окно, чтобы оно выглядело спереди. но если окно закрыто. Я получаю уведомление, звуковой ect (from background.js), и я создаю окно для открытия, когда получаю это уведомление, но я больше не могу взаимодействовать с скриптом background.js. это похоже на то, что огонь chrome.runtime.sendMessage вскоре откроется полностью.Как узнать, когда открыто окно приложения Chrome

chrome.runtime.sendMessage({ 
    action: "Messageincoming" 
}); 

Когда сообщение входящее в моем приложении, всплывающее окно появляется сообщает пользователь, что сообщение является входящим (вызываются из background.js), и пользователь может принять его, нажав на кнопку. но когда окно приложения закрыто, я должен открыть новое окно и открыть его программно с помощью chrome.app.window.create('myapp.html', {

Как я уже сказал, chrome.runtime.sendMessage, похоже, срабатывает до того, как окно полностью откроется. Я не могу вызвать это всплывающее окно, чтобы пользователь принял, и я не уверен, что если я сделаю это, кнопка будет работать.

Есть ли способ подождать, пока окно полностью откроется? или использовать любой другой метод. Я прочитал всю документацию по Chrome, и ничего не нашел. У меня есть js-скрипты на странице myapp.html, которые контролируют щелчок и все в пользовательском интерфейсе. controler.js

+0

Я узнал, я просто жду, когда готов jQuery, я отправлю сообщение на мой background.js, и он отправит сообщение в мой файл js внутри моей html-страницы. – Gino

ответ

1

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

Другой способ - получить сообщение, как вы описали. Вы также можете это сделать, но вам нужно настроить обработчик сообщений на новой странице, которую вы создали, и ее необходимо установить сразу же при загрузке страницы, иначе вы пропустите сообщение, как вы описали. Подробнее о передаче сообщений с некоторыми примерами внизу. https://developer.chrome.com/extensions/messaging

Более сложным способом сделать это может быть привязка к OnFullscreened или другим обработчикам для нового окна. В этом обработчике отправьте запрос на фоновый скрипт, запрашивая любые необходимые данные. В своем фоновом сценарии у вас есть обработчик сообщений, который возвращает все сохраненные сообщения (сообщения), которые вы хотите.

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