前言
相信移動(dòng)端開(kāi)發(fā)的人員劫笙,是無(wú)法避開(kāi)申請(qǐng)權(quán)限的問(wèn)題况芒;在flutter中也是會(huì)遇到此問(wèn)題符隙,還好已經(jīng)有一個(gè)很好的第三方庫(kù)可以使用
permission_handler,是專門用來(lái)處理權(quán)限的舅巷,
flutter 使用permission_handler調(diào)用iOS相機(jī)相冊(cè)權(quán)限,好像沒(méi)有效果,不會(huì)彈出申請(qǐng)權(quán)限的彈框出來(lái)
兵钮,今天我們就來(lái)填坑
最終效果
第一步:iOS原生工程申請(qǐng)權(quán)限
打用XCode打開(kāi)iOS原生工程蛆橡,找到info.plist文件,在里面填加key value掘譬,如下
第二步:在flutter里面代碼調(diào)用
if (await Permission.camera.request().isGranted) {
///如果相機(jī)權(quán)限申請(qǐng)成功泰演,下面寫接下來(lái)要做的處理
//do some thing...
} else {
///如果相機(jī)權(quán)限申請(qǐng)失敗,下面給出提示
//OwonToast.show(S.of(context).permission_no_camera);
}
按正常理解完成上面的2步是可以正常使用葱轩,調(diào)起相機(jī)的權(quán)限申請(qǐng)粥血,但實(shí)際真機(jī)iPhone上是沒(méi)有任何效果
第三步:關(guān)鍵的一步(很多其他博主都寫得不是很清楚)
打用XCode打開(kāi)iOS原生工程柏锄,找到Podfile
文件,增加下面的代碼才可以哦(權(quán)限的數(shù)量根據(jù)個(gè)人需要复亏,去增減趾娃,下面只是參考)
target.build_configurations.each do |config|
config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= [
'$(inherited)',
## dart: PermissionGroup.camera
'PERMISSION_CAMERA=1',
# dart: PermissionGroup. photos
'PERMISSION_PHOTOS=1',
'PERMISSION_PHOTOS_ADD_ONLY=1',
# dart: [PermissionGroup. location, PermissionGroup. locationAlways, PermissionGroup. locationWhenInUse]
'PERMISSION_LOCATION=1',
# dart: PermissionGroup.mediaLibrary
'PERMISSION MEDIA LIBRARY=1'
]
end
第四步:需要重新Pod install
pod成功后,再去運(yùn)行代碼 缔御,沒(méi)有意外的話抬闷,就成功調(diào)用起相機(jī),相冊(cè)等
結(jié)尾
今天flutter 相關(guān)技術(shù)的分享就到這里嘍耕突,小伴們,覺(jué)得有點(diǎn)用的話笤成,或者已經(jīng)看到這里面來(lái)的請(qǐng)點(diǎn)個(gè)贊吧~~ 后續(xù)分享更多有關(guān)flutter的文章。如果有疑問(wèn)的話眷茁,請(qǐng)?jiān)谙路搅粞詞