Сообщения о расширении Chrome в автономном режиме не принимаются
У меня есть простое расширение, работающее в фоновом режиме (в основном пример кода gcm клиента chrome). Когда я отправляю сообщение gcm на мой добавочный номер во время работы Chrome, сообщение принимается нормально. Если я затем закрою Chrome, отправлю сообщения gcm на тот же reg id, а затем перезапущу Chrome, сообщения не будут получены. Можно ожидать, что onMessage будет вызываться при запуске расширения (и добавляется прослушиватель onMessage). Почему это не так?
1 ответ
Фоновые страницы должны быть зарегистрированы в манифесте расширения. Если вам нужно указать HTML на своей фоновой странице, вы можете сделать это, используя свойство страницы:
manifest.json
{
"name": "My extension",
...
"background": {
"page": "background.html"
},
...
}
В дополнение к этому, так как я не уверен, что у вас уже есть в вашем коде, я мог бы также добавить о сервисном работнике. Как обсуждалось в разделе Внедрение push-сообщений для Chrome, регистрация работника службы необходима для реализации push-сообщений в Интернете.
Причина этого заключается в том, что при получении push-сообщения браузер может запустить работника службы, который работает в фоновом режиме без открытой страницы, и отправить событие, чтобы вы могли решить, как обрабатывать это push-сообщение.
Чтобы полностью понять функцию сервисного работника, вы можете ознакомиться с разделом " Введение в сервисного работника" и найти решение, приведенное в этой публикации SO - сообщения GCM, не доставляемые в Chrome Packaged Apps(автономный режим), могут также работать для вас.