Chrome扩展程序使用后台页面+内容脚本

时间:2015-02-22 12:23:41

标签: javascript google-chrome google-chrome-extension oauth

我在浏览Chrome扩展程序的结构时遇到了问题。

我的扩展程序有两个不同的部分:

  1. 它使用背景页面通过oAuth登录,然后整理oAuth中的大量数据并将其保存到chrome.storage.local

  2. 在浏览网页时,会调用chrome.storage.local来检查当前域是否与oAuth中存储的信息相匹配,如果是,则使用[Rich Notifications API][1]

    显示通知
  3. manifest.json的结构正在破坏事物。

    {
      "name": "API Test",
      "version": "3.1.2",
      "manifest_version": 2,
      "minimum_chrome_version": "29",
      "app": {
        "background": {
          "scripts": ["main.js"]
        }
      },
      "permissions": ["identity", "storage", "*://*/*"],
      "oauth2": {
        "client_id": "<<client_id>>",
        "scopes": [
          "https://www.googleapis.com/auth/plus.login",
          "https://www.google.com/m8/feeds",
          "https://www.googleapis.com/auth/contacts.readonly"
        ]
      },
      "content_scripts": [
        {
          "matches": ["*://*/*"],
          "js": ["domchecker.js"]
        }
      ]
    }
    

    当我这样做时,我从Chrome中收到以下错误:

    There were warnings when trying to install this extension:
    'content_scripts' is only allowed for extensions and 
    legacy packaged apps, but this is a packaged app.
    

    是否可以串联进行这两个过程?如果没有,我如何使用后台页面检查页面刷新并运行脚本?

1 个答案:

答案 0 :(得分:5)

您的清单是应用清单,由错误提供有用的建议。

要修复,请删除app&#34;包装&#34;,它应该只是background.scripts键。然后它将是一个有效的扩展清单。


值得注意的是:chrome.notifications不适用于内容脚本;您需要使用Messaging请求您的背景页面进行展示。