chrome扩展程序中的用户可配置的url权限

我正在创建一个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其匹配即可;如果失败,则静默停止运行代码。

我可以想到一种解决方法来避免这种情况,但老实说,它并不能给您太多帮助:

  1. 使用http://*/https://*/作为可选权限(无论如何,您实际上应该确实将它们设置为可选)。
  2. 使chrome.permissions.request当时的用户正在修改通话选项
  3. 在后台脚本中,调用当前URL,如果没有权限,则静默停止运行代码。chrome.permissions.contains

上面的结果是,它不会将当前URL与设置中的URL进行比较,而是将当前URL与扩展名之前已获得许可的任何URL进行比较。我猜想它稍微简化了后台脚本(您不必将URL存储在设置中),但是会使选项页面代码稍微复杂些。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章