1

我正在尝试从托管在 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 所指出的)

4

2 回答 2

2

它需要一个 Uri 对象,因此在传递之前对其进行解析:

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

我相信方案是默认情况下采用的协议http。因此,对于其他协议,您必须明确给出。最好将其转换为Uri始终。Uricore图书馆。

于 2014-09-19T04:59:09.790 回答
1

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

于 2014-09-19T09:14:27.137 回答