ios 9 - xcode 7 - SFSafariViewController - 图片上传 - 相机黑屏

标签 ios xcode swift camera sfsafariviewcontroller

我在使用 SFSafariViewController 时遇到了以下问题:用户看到一个上传图像按钮,单击该按钮时设备会正确显示多个选项,其中之一是相机。当用户选择相机时,它会加载相机但屏幕是黑色的,并且操作按钮是灰色的。但是,如果用户选择库,则会正确上传所选图像。

我确实验证了该应用程序已打开相机权限。

我尝试实现找到的修复 herehere ,但无济于事。

还有其他人遇到过这个问题吗?

代码:

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 resources that can be recreated.
    }
}

-----更新 #1-----

重置隐私设置并尝试直接从相机上传图像后,我没有收到“SafariViewService 想要访问相机,我认为这可能是问题所在。因为在我接受之后,屏幕仍然是黑色的,我”我想知道为什么它不说我的应用程序名称如“FooBar”想要访问...也许这种错位是相机屏幕变黑的原因。只是不确定如何更改它。

-----更新 #2-----

这似乎是一个 SFSafariViewController 问题,因为我实现了 WKWebView 并且相机工作正常。

最佳答案

编辑 iOS 11.3: 感谢 Rihards 的评论并指出此问题已得到修复。

这显然是 SFSafariViewController 的一个已知错误(我提交了一个已关闭的雷达)。我遇到了同样的问题,我们的移动网站无法从设备中获取任何内容,而不是用于拍摄照片的相机或来自相机胶卷的照片。这在 Safari 和 SFSafariViewController 中一直存在,所以我们最终只是通过原生 VC 和 Parse 重做完整的上传过程。 .但是,在执行所有这些操作之前,我从技术支持那里得到了一些建议,他们告诉我尝试以下操作:

  1. 检查第二台设备。有时这可能是由于权限错误而只在一台设备上发生的错误。检查第二台设备应该排除安装时出现问题的选项
  2. 在“设置”中检查应用的权限。他们告诉我,如果用户拒绝使用相机,有时会出现黑屏。要检查是否是这种情况,请打开设置,向下滚动到底部并选择您的应用。在这里你应该看到一个开/关切换,它应该都指向开。如下面的屏幕截图所示。 screenshot

但是,我的两分钱是:

  1. 考虑改用 UIWebview 或 WKWebview。你说你的网站是移动友好的,那么你可以考虑简单地将 UIWebview 拖到你的 Storyboard 中并将其设置为指向你的网站。 Here是关于 UIWebviews 的一个很好的教程。另一个更明显的替代方法是使用 WKWebview。然而,在您的更新中,您已经指出您已经这样做了,所以我不会将您链接到任何教程。

否则,除了用他们的 Bug Reporter 向 Apple 提交另一个雷达之外,您目前无能为力。 .最后,您可以提交一张技术支持票,但我不会浪费其中任何一张,因为您每个成员(member)年只有 2 张。

希望对你有所帮助,朱利安

关于ios 9 - xcode 7 - SFSafariViewController - 图片上传 - 相机黑屏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33930409/

相关文章:

ios - 在 UIViewController 上动态创建 UIWebView

arrays - 从多个文本字段追加到数组?

swift - 如何使用 UISwipeActionsConfiguration 设置删除单元格的延迟?

iphone - 第一次使用协议(protocol) - Objective-C

html - 使按钮在鼠标悬停时可见

ios - 对成员 'count' 的模糊引用

ios - 为什么我在 Storyboard (Xcode) 中所做的更改没有反射(reflect)在我的应用程序上?

c++ - 由于 LLVM 错误,Xcode 无法编译

iOS:将应用程序限制为仅限 64 位设备

ios - 另一个 SIGABRT 错误