1

В моем background.js файла У меня есть следующий код:Chrome Extension не сохраняется

chrome.runtime.onInstalled.addListener(function (info) { 
    chrome.contextMenus.removeAll(function() { 
     chrome.contextMenus.create({ 
      "title": "Blog this image", 
      "contexts": ["image"], 
      "id": "contextimagelink", 
      "onclick": onImageClickedHandler 
     }, function() { }); 
    }); 
}); 

Идея заключается в том, что любое время установлено или обновлено, чтобы удалить любое существующее контекстное меню я расширение установить и установить только один.

Проблема в том, что каждый раз, когда расширение обновляется через магазин, контекстные меню удаляются, но не переустанавливаются. Я не могу понять способ отладки этого или почему это происходит вообще. Это происходит не во время разработки, только когда расширение обновляется после публикации обновления.

ответ

2

Добавить контекстное меню на мероприятиях chrome.runtime.onInstalled и chrome.runtime.onStartup.

Для образца кода, обратите внимание на https://github.com/Rob--W/crxviewer/blob/master/src/bg-contextmenu.js В этом расширении, контекстное меню дополнительная функция, состояние которого контролируется с помощью предпочтений сохраняется через chrome.storage API.
Также есть open Chromium issue с событием onInstalled в режиме инкогнито. Я решил эту проблему в https://github.com/Rob--W/crxviewer/blob/master/src/incognito-events.js

+0

Я пробовал это и только что обновил свое приложение. Не работает. –

+0

@wtfsven Ссылка на исходный код? –

+0

https://chrome.google.com/webstore/detail/mcobficgnfpkmfggdmlbllhemkbaloop - версия 0.64 должна быть через 30 минут или около того. –