getUrlSchemes method
Gets the list of URL schemes currently in Info.plist.
Implementation
List<String> getUrlSchemes() {
final plistFile = File(_infoPlistPath);
if (!plistFile.existsSync()) {
return [];
}
try {
final content = plistFile.readAsStringSync();
if (!content.contains('<key>CFBundleURLSchemes</key>')) {
return [];
}
// Extract strings from CFBundleURLSchemes array
final schemesPattern = RegExp(
r'<key>CFBundleURLSchemes</key>\s*<array>([\s\S]*?)</array>',
multiLine: true,
);
final match = schemesPattern.firstMatch(content);
if (match == null) {
return [];
}
final arrayContent = match.group(1) ?? '';
final stringPattern = RegExp(r'<string>([^<]+)</string>');
final stringMatches = stringPattern.allMatches(arrayContent);
return stringMatches.map((m) => m.group(1)!).toList();
} catch (_) {
return [];
}
}