0

У меня есть простое расширение, работающее в фоновом режиме (в основном образец хром-клиента gcm-кода). Когда я отправляю gcm-сообщение на мое расширение, а chrome работает, сообщение получает штраф. Если я затем закрою хром, отправьте gcm-сообщения на один и тот же reg id, затем перезапустите chrome, сообщения не будут получены. Можно было бы ожидать, что onMessage будет вызываться, когда начнется добавление (и добавлен слушатель onMessage). Почему это не так?chrome extension offline gcm сообщений не получено

ответ

0

Background pages должно быть зарегистрировано в манифесте продления. Если вам необходимо указать HTML в фоновой странице, вы можете сделать это с помощью свойства страницы:

manifest.json

{ 
    "name": "My extension", 
    ... 
    "background": { 
    "page": "background.html" 
    }, 
    ... 
} 

В дополнение к этому, так как я не уверен, что вы уже в вашем коде, я мог бы также добавить об обслуживании. Как обсуждалось в Implementing Push Messaging for Chrome, регистрация рабочего сотрудника необходима для реализации push-сообщений для сети.

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

Чтобы полностью понять функции работника службы, вы можете пройти через Introduction to Service Worker и решение данного в этом SO поста - GCM messages not getting delivered to Chrome Packaged Apps(offline mode) может работать для вас тоже.

+0

Это фоновый скрипт с разрешением «фон», установленным в манифесте. Я не заинтересован в использовании сервисного работника, поскольку это не веб-страница или приложение, это расширение, и я использую только gcm. Другая ссылка не помогает. Вы можете проверить это на linkymclinkface.com и увидеть код расширения. Если браузер открыт, сообщения получаются в порядке. Если браузер закрыт и сообщения отправляются на него, при повторном открытии браузера сообщения «офлайн» не принимаются. Событие onMessage не запускается для сообщений «offline» gcm при запуске браузера. – 2fours

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