Привет, в настоящее время я загружаю файл HTML из ресурсов на локальном сервере дротиков в приложении Flutter, и он отлично работает, даже загружая данные из других связанных скриптов и стилей.
Вот мой код.
HttpServer.bind('127.0.0.1', _port, shared: true).then((server) {
print('Server running on http://localhost:' + _port.toString());
this._teXViewServer = server;
server.listen((HttpRequest httpRequest) async {
request(httpRequest);
var body = List<int>();
var path = httpRequest.requestedUri.path;
path = (path.startsWith('/')) ? path.substring(1) : path;
path += (path.endsWith('/')) ? 'index.html' : '';
try {
body = (await rootBundle.load("path/to/index.html")).buffer.asUint8List();
} catch (e) {
// print(e.toString());
httpRequest.response.close();
return;
}
var contentType = ['text', 'html'];
if (!httpRequest.requestedUri.path.endsWith('/') &&
httpRequest.requestedUri.pathSegments.isNotEmpty) {
var mimeType = lookupMimeType(httpRequest.requestedUri.path,
headerBytes: body);
if (mimeType != null) {
contentType = mimeType.split('/');
}
}
httpRequest.response.headers.contentType =
new ContentType(contentType[0], contentType[1], charset: 'utf-8');
httpRequest.response.add(body);
httpRequest.response.close();
});
completer.complete();
});
Как я могу выполнить sh это с помощью дротика? Я пробовал несколько подходов, но они не работают должным образом. Я попытался преобразовать строку в Unit8List и попытался загрузить ее, но она не работает.
body = stringTOUnit8List("HTML_code_string");
Uint8List stringTOUnit8List(String source) {
// String (Dart uses UTF-16) to bytes
var list = new List<int>();
source.runes.forEach((rune) {
if (rune >= 0x10000) {
rune -= 0x10000;
int firstWord = (rune >> 10) + 0xD800;
list.add(firstWord >> 8);
list.add(firstWord & 0xFF);
int secondWord = (rune & 0x3FF) + 0xDC00;
list.add(secondWord >> 8);
list.add(secondWord & 0xFF);
} else {
list.add(rune >> 8);
list.add(rune & 0xFF);
}
});
Uint8List bytes = Uint8List.fromList(list);
return bytes;
}
Я хочу загрузить связанные скрипты и стили из ресурсов. Просто хочу загрузить index. html из String.