我正在使用SFSafariViewController,并遇到以下问题:向用户显示上传图像按钮,单击时设备正确显示多个选项,其中一个是相机.当用户选择摄像机时,它会加载摄像机,但屏幕为黑色,操作按钮显示为灰色.但是,如果用户选择库,则会正确上载所选图像.
我确认该应用已启用相机权限.
其他人遇到这个问题?
码:
import UIKit
import SafariServices
class ViewController: UIViewController, SFSafariViewControllerDelegate
{
private var urlString:String = "https://example.com"
override func viewDidLoad()
{
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func viewDidAppear(animated: Bool)
{
super.viewDidAppear(animated)
let svc = SFSafariViewController(URL: NSURL(string: self.urlString)!)
svc.delegate = self
self.presentViewController(svc, animated: true, completion: nil)
}
func safariViewControllerDidFinish(controller: SFSafariViewController) {
super.dismissViewControllerAnimated(true, completion: nil)
}
override func didReceiveMemoryWarning()
{
super.didReceiveMemoryWarning()
// Dispose of any …Run Code Online (Sandbox Code Playgroud) 我有以下功能,显示一个带有两个不同选项的操作表.目前,唯一实施的选项是标题为"照片".正确显示操作表并调用正确的操作.我的问题是,在模拟器和实际设备上,我无法显示请求访问照片库的提示.
PHPhotoLibrary.authorizationStatus()返回.Denied并显示通知当前应用无法访问照片的模式:

@IBAction func attachPhotoButtonTapped(sender: AnyObject) {
let actionSheetController = UIAlertController(title: "Images", message: "Select image source...", preferredStyle: .ActionSheet)
let cancelAction = UIAlertAction(title: "Cancel", style: .Cancel) {
(action) in
// ...
}
actionSheetController.addAction(cancelAction)
let takePictureAction = UIAlertAction(title: "Camera", style: .Default) {
(action) in
// ...
}
actionSheetController.addAction(takePictureAction)
let choosePictureAction = UIAlertAction(title: "Photos", style: .Default) {
(action) in
PHPhotoLibrary.requestAuthorization({(status:PHAuthorizationStatus) in
switch status{
case .Authorized:
dispatch_async(dispatch_get_main_queue(), {
print("Authorized")
})
break
case .Denied:
dispatch_async(dispatch_get_main_queue(), {
print("Denied")
})
break
default:
dispatch_async(dispatch_get_main_queue(), { …Run Code Online (Sandbox Code Playgroud) 我一直致力于应用程序,允许使用AVCaptureDevice使用设备相机.它之前的ios版本<9非常适用,但现在ios 9从应用程序访问相机时,它只显示黑屏.我甚至无法从应用程序访问用户照片.
主要部分是我的应用程序我在设置中找不到相机选项隐私设置.即使我没有获得苹果默认权限访问弹出选项.
你能帮帮我吗?
它不是在iOS 9中询问画廊的权限,但在iOS 8中它可以正常工作。也许我需要输入任何权限info.plist?
PHPhotoLibrary.requestAuthorization({ (status) -> Void in
})
Run Code Online (Sandbox Code Playgroud) 为了进行测试,我试图重新创建系统“请求访问”弹出体验。
更新:
iOS 11下,删除App后,系统弹窗会再次显示。
(上一个问题)
应用程序第一次运行(也是唯一一次),系统弹出窗口显示,请求访问。之后,即使删除应用程序并重新启动设备也会再次触发该弹出窗口。
换句话说,设备“记住”用户请求并且无法重置它。
这是代码:
[PHPhotoLibrary requestAuthorization:^(PHAuthorizationStatus status) {
switch (status) {
case PHAuthorizationStatusAuthorized:
NSLog(@"PHAuthorizationStatusAuthorized");
break;
case PHAuthorizationStatusDenied:
NSLog(@"PHAuthorizationStatusDenied");
break;
case PHAuthorizationStatusNotDetermined:
NSLog(@"PHAuthorizationStatusNotDetermined");
break;
case PHAuthorizationStatusRestricted:
NSLog(@"PHAuthorizationStatusRestricted");
break;
}
}];
Run Code Online (Sandbox Code Playgroud)
当设置中关闭访问时,它会继续打印“PHAuthorizationStatusDenied”。但不显示任何弹出窗口。立即返回。
建议将“捆绑包显示名称”添加到 plist 中。尝试过没有效果,值为空、$(PRODUCT_NAME) 和不同的字符串。
清理项目,删除DrivedData(并每次从模拟器中删除应用程序)。没有运气。
更多信息:
一旦您在“设置”中关闭照片访问权限,Apple 示例代码“SamplePhotosApp”就会崩溃。