如何将本地图像添加到 flutter_local_notifications
How to add local image to flutter_local_notifications
我正在尝试创建推送通知并想在通知中添加图片。我可以添加来自网络的图像,如下面的屏幕截图所示。
如何添加本地图片?我尝试添加如下所示的文件路径,但没有成功:
您要添加的文件路径是项目的根路径,但此方法需要 android 文件路径(例如 /storage/emulated/0/Android/data/com.expampe.app/cache/bg.png
),因此您必须将资产图像转换为文件并保存,然后 return 它的路径:
import 'dart:async';
import 'dart:io';
import 'package:flutter/services.dart' show rootBundle;
import 'package:path_provider/path_provider.dart';
Future<String> getImageFilePathFromAssets(String asset) async {
final byteData = await rootBundle.load(asset);
final file =
File('${(await getTemporaryDirectory()).path}/${asset.split('/').last}');
await file.writeAsBytes(byteData.buffer
.asUint8List(byteData.offsetInBytes, byteData.lengthInBytes));
return file.path;
}
然后
final attachmentPicturePath = await getImageFilePathFromAssets('assets/image2.jpg');
我正在尝试创建推送通知并想在通知中添加图片。我可以添加来自网络的图像,如下面的屏幕截图所示。
如何添加本地图片?我尝试添加如下所示的文件路径,但没有成功:
您要添加的文件路径是项目的根路径,但此方法需要 android 文件路径(例如 /storage/emulated/0/Android/data/com.expampe.app/cache/bg.png
),因此您必须将资产图像转换为文件并保存,然后 return 它的路径:
import 'dart:async';
import 'dart:io';
import 'package:flutter/services.dart' show rootBundle;
import 'package:path_provider/path_provider.dart';
Future<String> getImageFilePathFromAssets(String asset) async {
final byteData = await rootBundle.load(asset);
final file =
File('${(await getTemporaryDirectory()).path}/${asset.split('/').last}');
await file.writeAsBytes(byteData.buffer
.asUint8List(byteData.offsetInBytes, byteData.lengthInBytes));
return file.path;
}
然后
final attachmentPicturePath = await getImageFilePathFromAssets('assets/image2.jpg');