#google-chrome-extension
#google-chrome-расширение #google-chrome-extension
Вопрос:
Я разрабатываю расширение Chrome. Странно то, что оно отлично работает на локальном компьютере (используя способ «Загрузить распакованную папку»).
Однако, когда я отправил его в Chrome Web Store, он не работает.
Вот подробности:
В manifest.json
:
"optional_permissions": [ "u003Call_urls"],
"permissions": [ "activeTab", "contextMenus" ],
В option.js
:
// First of all, check whether I've got the permissions
chrome.permissions.contains({
origins: ['u003Call_urls>']
}, function(result) {
if (result) {
// If I have the permission, remove the "grant" button.
$('#grant_button').remove();
} else {
// If I don't have the permission, let the "grant" button be able to invoke a permission request
$('#grant_button').click(function(){
chrome.permissions.request({
origins: ['u003Call_urls>']
}, function(granted) {}
});
}
});
Странно, что все отлично работает в локальном режиме:
- Кнопка предоставления разрешения включена сначала
- Когда я нажимаю кнопку предоставления, появляется окно подтверждения разрешения.
- Когда я нажимаю кнопку «Разрешить» и обновляю страницу настроек, кнопка «Предоставить» исчезает.
Но в выпущенной версии в Chrome Web Store:
- Кнопка предоставления разрешения включена сначала
- Когда я нажимаю кнопку предоставления, появляется окно подтверждения разрешения.
- Когда я нажимаю кнопку «Разрешить» и обновляю страницу своих опций, кнопка «Предоставить» ВСЕ ЕЩЕ там. И
chrome.permissions.contains
действительно вернуло значение false. И нет возможности вызватьchrome.permissions.request
еще раз.
Комментарии:
1. Звучит как crbug.com/931816 сломано в 72 и исправлено в 74, т. е. в beta / dev / canary.
2. Спасибо. Я использовал
tabs
, чтобы все исправить.