在IOS访问Flutter资源文件

在iOS平台上,Flutter通过FlutterViewController的lookupKeyForAsset方法来访问assets资源,如图片和数据库文件。例如,可以使用该方法读取icons/heart.png或assets/db.sqlite。在AppDelegate中,可以通过获取FlutterViewController并调用lookupKeyForAsset来定位资源的路径。
摘要由CSDN通过智能技术生成

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值