2014-09-18 21 views
1

我試圖從託管在HTTPS服務器中的文件動態加載代碼。spawnUri()與「https」

有沒有人成功使用spawnUri()與https:// URIs? 我已經測試過,它可以很好地與http:// URIs協作。

但隨着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的版本是1.6.0上macos_x64

編輯: 解析使用Uri.parse的URI的字符串()然後將其傳遞給spawnUri作爲參數。 (由@ user568109正如指出的)

回答

2

它需要一個開放的對象,因此分析它才通過:

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

我相信方案是需要在默認情況下是httpprotocol。所以對於其他協議,你必須明確地給它。總是將其轉換爲Uri更好。 Uricore庫中。

+0

你是對的有關分析,我忘了在創建這個例子中,我竟然解析並測試它固定。我仍然得到同樣的例外。這使我懷疑它是否是一個錯誤? 我會給你一個用於查找代碼錯誤的+1,但不能接受答案,因爲它不能解決問題:) – lihsus 2014-09-19 09:11:19