为什么用户允许但在chrome.permissions.contains函数中未检测到的可选权限授予?

时间:2019-03-16 08:46:04

标签: google-chrome-extension

我正在开发Chrome扩展程序。奇怪的是,它在本地环境下运行完美(使用“加载解压缩的文件夹”方式)。

但是,当我将其提交到Chrome网上应用店时,它无法正常工作。

以下是详细信息:

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) {}
    });
  }
});

在本地模式下一切正常运行很奇怪:

  1. 首先启用“授予”按钮
  2. 当我单击“授予”按钮时,将出现权限确认框。
  3. 当我单击“允许”按钮并刷新我的选项页面时,授予按钮消失了。

但在Chrome网上应用店的发行版中:

  1. 首先启用“授予”按钮
  2. 当我单击“授予”按钮时,将出现权限确认框。
  3. 当我单击“允许”按钮并刷新我的选项页面时,授予按钮仍然存在。 chrome.permissions.contains确实返回了false。而且无法再次调用chrome.permissions.request

0 个答案:

没有答案