繁体   English   中英

Chrome扩展程序-请求“当前”标签的可选权限

[英]Chrome Extension - Request Optional Permissions for current tab

我正在尝试要求当前来源的选项卡许可。 例如:我在http://stackoverflow.com上 ,单击徽章,然后从弹出窗口单击按钮,我应该得到一个提示框,允许在此选项卡上进行操作。

我在做什么:

  • 表现
    \n ...\n “权限”:[“标签”,“ contextMenus”],\n “ optional_permissions”:[ "<all_urls>" ],\n ...\n
  • 弹出

      $('#reqPermision')。click(function()\n {\n     bg.reqPerm(url);\n }); 

  • 背景

      函数reqPerm(url)\n {\n     chrome.permissions.request({permissions:['tabs'],origin:[url]},功能(已授予)\n     {\n         log('permision:',已授予)\n     });\n } 

我得到的是:

Permissions.request期间出错:扩展清单中必须列出可选权限。

如果我在“ optional_permissions”数组中手动​​设置了url (在此示例中为https://stackoverflow.com/ ,则一切都按我的需要工作。

当前这是不可能的,您只能请求对清单中已明确列出的URL的权限。 但是, 此功能请求应使您要执行的操作(单击浏览器操作时自动授予权限)可行。

您要尝试执行的操作应该可以。 在弹出的代码应该是:

$('#reqPermision').click(function() {
    chrome.permissions.request({origins: [url]}, function (granted) {
        log('permision:', granted)
    });
});

您无需从后台页面调用它。


但是,最好使用像webext-domain-permission-toggle这样的模块,因为它将为您处理整个UI。

首先,不允许使用//的可选权限//代码中出现错误,然后您需要在执行此操作的可选权限数组中指定tab权限

"permissions": ["tabs", "contextMenus"], "optional_permissions": [ "<all_urls>" ],

你这样做

"permissions": [, "contextMenus"], "optional_permissions": [ 'tabs' ,<any other permission you want>],

第三,您应该在请求权限之前检查它,并且它未被授予,那么您应该请求它引用google可选权限

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM