在Chrome扩展内容脚本中使用Dart无法运行?

时间:2014-10-14 18:12:03

标签: google-chrome-extension dart

我正在尝试使用Dart编写Chrome扩展程序。到目前为止一切顺利,除了内容脚本---" main"内容脚本中的函数dart文件似乎没有运行。

更具体地说,首先不能使用Dartium,因为在" js"中给出了一个dart文件。清单中的规则导致Dartium抱怨;我接下来尝试编译dart文件(使用csp:true)然后使清单直接包含已编译的js文件---然后我卡住了,似乎无论我尝试什么,(编译)& #34;主"功能就是不运行。

有什么建议吗?

更新

清单文件:

{
  "manifest_version": 2,
  "name": "Assistant",
  "description": "Assists you with various tasks.",
  "version": "1.0",
  "minimum_chrome_version": "26.0",
  "permissions": ["<all_urls>", "storage"],

  "content_scripts": [
    {
      "matches": ["<all_urls>"],
      "js": [
        "packages/browser/dart.js",
        "dart_content_script.dart.js"
      ],
      "run_at": "document_start",
      "all_frames": false
    }
  ],

  "browser_action": {
    "default_popup": "popup.html",
    "default_icon": "bulb.png"
  },

  "background": {
    "page": "background.html"
  }
}

内容脚本dart文件:

void main() {
  print('main done');
}

pubspec.yaml:

name: AssistentExtension

dependencies:
  browser: any
  chrome: any

dev_dependencies:
  unittest: '>=0.10.0'

transformers:
- $dart2js:
    csp: true

在Chrome开发者控制台中,我可以找到字符串&#34; main done&#34;意思是&#34;主要&#34;函数确实包含在已编译的js中,但没有任何内容被打印,这意味着它不会被运行。

1 个答案:

答案 0 :(得分:0)

我遇到了和你一样的问题。那时我查看了控制台日志,一个日志说Chrome包丢失了(但我不知道是什么原因导致它),所以我手动将它添加回build文件夹,然后它就这样工作了我可以在main()中看到我的日志。

当我运行 test_ext 附带的 official chrome pub 时,我在控制台日志中收到不同的错误消息,我再次解决了它然后 test_ext 示例也运行良好。

所以,我的建议是看看控制台日志,它可能有所帮助。右键点击弹出式扩展程序界面,然后选择“检查元素”即可打开控制台进行扩展。