resolve method
Resolves a renderer for manifest.
Implementation
MiniProgramScreenRenderer resolve(MiniProgramManifest manifest) {
final format = MiniProgramScreenFormats.normalize(manifest.screenFormat);
final renderer = _renderers[format];
if (renderer == null) {
throw MiniProgramRenderException(
message: 'Unsupported mini-program screen format "$format".',
details: <String, dynamic>{'unsupportedScreenFormat': format},
);
}
final supportedVersions = renderer.supportedSchemaVersions;
if (supportedVersions.isNotEmpty) {
final version = manifest.screenSchemaVersion;
if (version == null || !supportedVersions.contains(version)) {
throw MiniProgramRenderException(
message:
'Unsupported mini-program screen schema version "$version" for format "$format".',
details: <String, dynamic>{
'unsupportedScreenSchemaVersion': version,
'supportedScreenSchemaVersions': supportedVersions.toList()..sort(),
},
);
}
}
return renderer;
}