我正在创建一个chrome扩展程序,它将带有全局热键的动作添加到JIRA。我可以将自己的JIRA实例的URL硬编码到扩展程序中,但是我希望此URL是用户可配置的,因为其他用户对于自己的JIRA实例将具有不同的URL。
我想知道是否有更好的方法,而不仅仅是对所有URL赋予扩展名权限并签入后台脚本以将当前URL与用户选择作为设置的URL进行比较。理想情况下,我的背景/注入脚本只能在用户选择的网址上运行。我查看了权限api,但无法弄清楚。
我当前的manifest.json如下所示,我对我的jira url具有硬编码权限,是否可以使此权限用户可配置?
{
"permissions": [
"contentSettings",
"storage",
"commands",
"http://myjiraurl/*"
],
"background": {
"matches": [
"http://myjiraurl/*"
],
"scripts": ["src/background/background.js"]
},
"content_scripts": [
{
"matches": [
"http://myjiraurl/*"
],
"js": [
"js/jquery.min.js",
"src/inject/inject.js"
]
}
]
}
不管你做什么,以注入任意主机,你必须有http://*/
和https://*/
你的权限,最好是可选权限。您的建议-将当前URL与设置中的URL进行比较-听起来很合理:只需将当前URL与设置中的URL进行比较,然后将chrome.permissions.request
其匹配即可;如果失败,则静默停止运行代码。
我可以想到一种解决方法来避免这种情况,但老实说,它并不能给您太多帮助:
http://*/
和https://*/
作为可选权限(无论如何,您实际上应该确实将它们设置为可选)。chrome.permissions.request
当时的用户正在修改通话选项。chrome.permissions.contains
上面的结果是,它不会将当前URL与设置中的URL进行比较,而是将当前URL与扩展名之前已获得许可的任何URL进行比较。我猜想它稍微简化了后台脚本(您不必将URL存储在设置中),但是会使选项页面代码稍微复杂些。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句