我正在尝试从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所指出的那样)
答案 0 :(得分:2)
它需要一个Uri对象,所以在传递之前解析它:
Isolate.spawnUri(Uri.parse("https://example.com/MyIsolate.dart"), null, sendPort);
我认为方案是protocol,默认情况下为http
。所以对于其他协议,你必须明确地给它。最好始终将其转换为Uri
。 Uri
位于core
库中。
答案 1 :(得分:1)
我认为它是由几天前修复的这个错误造成的http://dartbug.com/20837