在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>