Я разрабатываю расширение для Chrome. Что странно, так это то, что он отлично работает на локальном компьютере (используя способ «Загрузить распакованную папку»).
Однако, когда я отправил его в Интернет-магазин Chrome, он не работает.
Вот подробности:
В manifest.json
:
"optional_permissions": [ "\u003Call_urls"],
"permissions": [ "activeTab", "contextMenus" ],
In 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
вернул ложь. И нет возможности снова позвонить chrome.permissions.request
.