在iOS 10中请求相机和库的权限 – Info.plist
我已经在一个应用程序中实现了一个WKWebView。 在显示的网页中有一个文件input,它应该从照片中导入图像。 每当我按下该input,并select“拍照”或“照片库”的应用程序突然崩溃,我相信是因为该应用程序是缺less照片或从图书馆导入的权限。
当用户select上述方法之一(拍照或图片库)时,如何推送许可请求?
我用WKWebView使用Swift 3.0。
您必须在Info.plist中添加以下权限。 Info.plist中的权限
相机:
Key : Privacy - Camera Usage Description Value : $(PRODUCT_NAME) camera use
照片:
Key : Privacy - Photo Library Usage Description Value : $(PRODUCT_NAME) photo use
您也可以以编程方式请求访问,这是我更喜欢的,因为在大多数情况下,您需要知道您是否访问了该访问权限。
Swift 4更新:
//Camera AVCaptureDevice.requestAccess(for: AVMediaType.video) { response in if response { //access granted } else { } } //Photos let photos = PHPhotoLibrary.authorizationStatus() if photos == .notDetermined { PHPhotoLibrary.requestAuthorization({status in if status == .authorized{ ... } else {} }) }
你不共享代码,所以我不能确定这是否对你有用,但一般来说,这是最好的做法。
文件:Info.plist
对于相机 :
<key>NSCameraUsageDescription</key> <string>You can take photos to document your job.</string>
对于图片库 ,您将需要这个允许应用程序用户浏览照片库。
<key>NSPhotoLibraryUsageDescription</key> <string>You can select photos to attach to reports.</string>
最简单的添加权限的方法不需要编程,就是打开你的info.plist文件,并select信息属性列表旁边的+,并通过下拉列表滚动到隐私选项,并select隐私相机使用说明访问相机或隐私照片库使用说明访问照片库。 在popup的警报popup要求的权限后,在select好之后填入右侧的string值,以包含要显示给用户的文本。
要请求照片应用程序的许可,您需要添加此代码(Swift 3) :
PHPhotoLibrary.requestAuthorization({ (newStatus) in if newStatus == PHAuthorizationStatus.authorized { /* do stuff here */ } })
斯威夫特4
文件:Info.plist
相机
<key>NSCameraUsageDescription</key> <string>camera description.</string>
相片
<key>NSPhotoLibraryUsageDescription</key> <string> photos description.</string>
位置
<key> NSLocationWhenInUseUsageDescription</key> <string> location description.</string>