官网描述:添加资源和图片 - Flutter 中文文档 - Flutter 中文开发者网站 - Flutter
在 iOS 平台上,assets 资源文件通过 mainBundle 读取。通过 pathForResource:ofType: 的
lookupKeyForAsset
或者lookupKeyForAsset:fromPackage:
方法获取文件路径,同样,FlutterViewController 的lookupKeyForAsset:
或者lookupKeyForAsset:fromPackage:
方法也可以获取文件路径。开发插件时可以使用FlutterPluginRegistrar
,而开发应用程序使用平台视图时,FlutterViewController
是最好的选择。
因为主要开发应用,所以使用FlutterViewController测试。
访问 icons/heart.png的事例:
OC代码:
NSString* key = [registrar lookupKeyForAsset:@"icons/heart.png"];
NSString* path = [[NSBundle mainBundle] pathForResource:key ofType:nil];
swift代码:
let key = controller.lookupKey(forAsset: "icons/heart.png")
let mainBundle = Bundle.main
let path = mainBundle.path(forResource: key, ofType: nil)
在IOS上访问flutter端 assets/db.sqlite文件
//AppDelegate文件中
let controller = window?.rootViewController as! FlutterViewController
let key: String = controller.lookupKey(forAsset: "assets/db.sqlite");
let mainBundle = Bundle.main
let path = mainBundle.path(forResource: key, ofType: nil)
//"/Users/metajoy-release-1/Library/Developer/CoreSimulator/Devices/004A8A04-436C-43DB-AA34-2C460339FE10/data/Containers/Bundle/Application/07029261-FF77-4D68-A52E-B5D8D23837BA/Runner.app/Frameworks/App.framework/flutter_assets/assets/db.sqlite"