https://pub.dev/packages/share_plus
https://pub.dev/packages/path_provider
이미지 주소를 받아서 해당 어플에서 다시 sms 등으로 이미지를 전달해야하는 일이 있었다.
share_plus 패키지를 사용했으며
///image 의경우 List<XFile> 이다.
Share.shareXFiles(image,
text:
"보낼 text");
해당과 같이 작성하며 이미지 주소를 XFile로 convert 에대해 먼저 생각했으며
쉽게 convert 과정을 설명하자면
ImageUrl 을 먼저 받은뒤 해당 url을 http 통신하여 받은 data값으로 ByteData 값으로 교체한뒤 해당 값을 Uni8List 로 convert 시킨뒤
path_provider 패키지 사용하여 임시 저장소에 해당값을 저장하고 해당값의 path로 XFile로 만들었다.
예시코드
final http.Response responseData = await http.get(Uri.parse(url));
var uint8list = responseData.bodyBytes;
var buffer = uint8list.buffer;
ByteData byteData = ByteData.view(buffer);
var tempDir = await getTemporaryDirectory();
File file = await File('${tempDir.path}/img.jpg').writeAsBytes(
buffer.asUint8List(byteData.offsetInBytes, byteData.lengthInBytes));
XFile files = XFile(file.path);