我确信这是可能的,我似乎无法弄明白。
我正在构建Chrome扩展程序,并且我已在localStorage [“url”]中设置了一个用户特定的API URL。但是,我需要将其添加到manifest.json文件中的权限。但是,我似乎无法访问清单中的localStorage。
有办法做到这一点吗?
答案 0 :(得分:1)
只是因为Chrome扩展程序中的清单是纯JSON,这意味着它只会被解析为文本,并且不能包含严格 JSON规范不允许的其他数据类型或文字。因此,您不能包含函数,也不能使用一个函数来返回值。
您甚至无法输入评论(实际上,您现在似乎可以发表评论,但事先并非如此)。
实现目标的一种方法是提供一个按需生成扩展的Web服务。它将在每个用户的基础上填充manifest.json,并对您的扩展程序进行压缩和签名。但是,它无法通过Chrome网上应用店安装,您需要自己托管。
答案 1 :(得分:1)
如果您担心cross origin permissions,那么API网址中的所有重要信息都是域名。
如果他们有一个公共域,那么只需在权限中声明它。如果存在一组域,则可以声明以逗号分隔的域列表。如果域名对于每个用户来说都是唯一的(很难想象),那么除了声明全范围http://*/
之外你别无选择,这不是世界末日。
答案 2 :(得分:0)
我很确定这是不可能的;您必须将API网址设置为与manifest.json
不同的文件,并手动请求权限。这样做的原因是为了避免权限劫持:如果您的localStorage
遭到入侵,那么理论上扩展可以在没有用户干预的情况下在任何地方发出请求。