在IOS访问Flutter资源文件

官网描述:添加资源和图片 - 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"

猜你喜欢

转载自blog.csdn.net/renxi0/article/details/131230547