2015-05-26 17 views
11

Tôi muốn tự động tạo và tải tập lệnh Dart. Làm thế nào để tôi làm điều này?Làm cách nào để tôi có thể xây dựng động một tập lệnh Dart cho spawnUri?

Tôi biết tôi có thể sử dụng Isolate.spawnUri để tự động tải tập lệnh Dart. Tuy nhiên, tôi chỉ biết rằng tôi có thể tải từ tệp: và http: URI. Điều này có nghĩa là tôi cần phải đặt kịch bản của tôi ở đâu đó để được tải, đó là một biến chứng tôi muốn tránh.

Trả lời

15

Trong SDK Dart 1.10, giờ đây bạn có thể tạo dữ liệu: URI từ chuỗi và chuyển dữ liệu đó: URI tới spawnUri.

Điều này có nghĩa là bạn có thể xây dựng động một chuỗi, khi chạy, mã hóa và tự động tải/chạy nó. Khéo léo!

Đây là một ví dụ.

kịch bản Dart của bạn:

import 'dart:isolate'; 

main() { 
    var loadMe = ''' 

main() { 
    print('from isolate'); 
} 

'''; 

    var uri = Uri.parse('data:application/dart;charset=utf-8,${Uri.encodeComponent(loadMe)}'); 
    print('loading $uri'); 

    Isolate.spawnUri(uri, null, null); 
} 

Thông báo dữ liệu: URI phải có dạng:

data:application/dart;charset=utf-8,DATA 

nơi DATA được URI trăm mã hóa.

Ngoài ra, utf-8 phải là chữ thường.

Các vấn đề liên quan