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

Mik*_*ell 13 xcode camera ios swift sfsafariviewcontroller

我正在使用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 resources that can be recreated.
    }
}
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

Jul*_* E. 3

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

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

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

然而,我的两分钱是:

  1. 考虑改用 UIWebview 或 WKWebview。您说您的网站适合移动设备,那么您可以考虑简单地将 UIWebview 拖到故事板中并将其设置为指向您的网站。是一个关于 UIWebviews 的很好的教程。另一种更明显的选择是使用 WKWebview。然而,在您的更新中,您已经指出您已经完成了此操作,因此我不会将您链接到任何教程。

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

希望有帮助,朱利安