spawnUri()与“https”

时间:2014-09-18 22:42:21

标签: dart dart-isolates

我正在尝试从HTTPS服务器中托管的文件中动态加载代码。

有没有人成功地使用带有https:// URI的spawnUri()? 我已经过测试,它可以与http:// URI配合使用。

但随着https://我不断得到:

Not a known scheme: https://example.com/MyIsolate.dart
#0      _filePathFromUri (dart:_builtin:289)
#1      _loadDataAsync (dart:_builtin:359)'
Stack Trace:
#0      Isolate.spawnUri (dart:isolate-patch/isolate_patch.dart:256)
...
...

我想知道我是否遗漏了什么。

例如,你可以试试这段代码:

import 'dart:async';
import 'dart:isolate';

ReceivePort receivePort;

main() {
  receivePort = new ReceivePort();
  Isolate.spawnUri(Uri.parse("https://example.com/MyIsolate.dart"), null, receivePort.sendPort);
}

我的Dart VM版本在macos_x64上是1.6.0

编辑: 使用Uri.parse()解析uri字符串,然后将其作为参数传递给spawnUri。 (正如@ user568109所指出的那样)

2 个答案:

答案 0 :(得分:2)

它需要一个Uri对象,所以在传递之前解析它:

Isolate.spawnUri(Uri.parse("https://example.com/MyIsolate.dart"), null, sendPort);

我认为方案是protocol,默认情况下为http。所以对于其他协议,你必须明确地给它。最好始终将其转换为UriUri位于core库中。

答案 1 :(得分:1)

我认为它是由几天前修复的这个错误造成的http://dartbug.com/20837