UriData.fromUri 构造函数

UriData.fromUri(
  1. Uri uri
)

从具有 data 作为 Uri.schemeUri 创建一个 DataUri

uri 必须有 data 方案,没有授权或片段,并且路径(如果有查询,则与查询连接)必须作为与 parse 相同的规则有效的数据 URI 内容。

实现

factory UriData.fromUri(Uri uri) {
  if (!uri.isScheme("data")) {
    throw ArgumentError.value(uri, "uri", "Scheme must be 'data'");
  }
  if (uri.hasAuthority) {
    throw ArgumentError.value(uri, "uri", "Data uri must not have authority");
  }
  if (uri.hasFragment) {
    throw ArgumentError.value(
        uri, "uri", "Data uri must not have a fragment part");
  }
  if (!uri.hasQuery) {
    return _parse(uri.path, 0, uri);
  }
  // Includes path and query (and leading "data:").
  return _parse(uri.toString(), 5, uri);
}