content method
Future<void>
content({
- required String title,
- required String imageUrl,
- required String deepLinkUrl,
- VoidCallback? onReady,
Implementation
Future<void> content({
required String title,
required String imageUrl,
required String deepLinkUrl,
VoidCallback? onReady,
}) async {
try {
if (imageUrl.trim().isEmpty) {
ckError('Image URL cannot be empty');
return;
}
final resolvedUrl = resolveImageUrl(imageUrl);
final uri = Uri.tryParse(resolvedUrl);
if (uri == null) {
ckError('Invalid image URL: $imageUrl');
return;
}
final response = await http.get(uri);
if (response.statusCode != 200) {
ckError('Failed to fetch image ($uri): status ${response.statusCode}');
return;
}
final sanitizedTitle = title.replaceAll(RegExp(r'[\\/:*?"<>|]'), '_');
final tempDir = await CkPath.getTemporaryDirectory();
final file = File('${tempDir.path}/$sanitizedTitle.jpg');
await file.writeAsBytes(response.bodyBytes);
final xFile = XFile(file.path);
final params = ShareParams(
text: '$title\n$deepLinkUrl',
files: [xFile],
title: title,
subject: title,
fileNameOverrides: ['$sanitizedTitle.jpg'],
previewThumbnail: xFile,
);
onReady?.call();
await SharePlus.instance.share(params);
file.delete();
} catch (e) {
ckError('Error sharing: $e');
}
}