在Chrome扩展中使用Dart

inkz8wg9  于 2023-04-03  发布在  其他
关注(0)|答案(1)|浏览(130)

我正在尝试使用Dart创建Chrome扩展程序。
到目前为止,我还不能让它在扩展中运行任何javascript,尽管我可以在浏览器中运行pub build。
我有以下3个文件:
Manifest.json:

{
  "manifest_version": 2,

  "name": "ecDownloader",
  "description": "-",
  "version": "0.1",

  "browser_action": {
    "default_title": "Click to disable extension",
    "default_icon": "images/icon.png"
  },

  "options_page" : "options.html"
}

options.html:

<html>
  <head>
    <meta charset="utf-8">
    <title>ecDownloader</title>
    <link rel="stylesheet" href="style.css">
  </head>
  <body>
    <div>
      <h1>Options</h1>
      <fieldset name="info">
        <legend>Login Information</legend>
        <label for="username">Username</label>
        <input type="text" name="username" id="username" size="20">
        <label for="password">Password</label>
        <input type="password" name="password" id="password" size="20">
        <button type="button">Save!</button>
      </fieldset>
      <span id="test"></span>
    </div>
    <script type="application/dart" src="options.dart"></script>
    <script src="packages/browser/dart.js"></script>
  </body>
</html>

options.dart:

import 'dart:html';

void main() {
  querySelector('#test').text = 'test';
}
ct3nt3jp

ct3nt3jp1#

Chrome扩展程序需要使用CSP兼容脚本。CSP兼容脚本由pub build自动生成,扩展名为dart.precompiled.js,但HTML文件默认引用非CSP兼容文件。
有计划说Dart 2 JS转换器的配置选项应该设置到适当脚本文件的链接,但这还没有实现。
还有一个选项csp: true用于聚合物变压器,使用聚合物时必须设置该选项。

编辑

transformer was added to chrome.dart将在pub build上自动执行此操作-很快就会推出。

相关问题