ios 9 – xcode 7 – SFSafariViewController – Carga de imágenes – Pantalla negra de la camera

Estoy trabajando con SFSafariViewController, y encontré el siguiente problema: al usuario se le presenta un button de upload image, cuando se hace clic en el dispositivo, se muestran correctamente varias opciones, una de las cuales es la camera. Cuando el usuario selecciona la camera, carga la camera, pero la pantalla es negra y el button de acción está en gris. Sin embargo, si el usuario selecciona la biblioteca, la image seleccionada se carga correctamente.

Verifiqué que la aplicación tiene permissions de camera encendidos.

Traté de implementar las correcciones encontradas aquí y aquí , pero fue en vano.

¿Alguien más se encuentra con este problema?

Código:

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. } } 

—– Actualización n. ° 1 —–

Después de restablecer la configuration de privacidad e intentar cargar la image directamente desde la camera, no recibo "SafariViewService Me gustaría tener acceso a la camera, lo que creo que puede ser el problema. Porque después de que acepto, la pantalla sigue siendo negra, me pregunto por qué no está diciendo que el nombre de mi aplicación como "FooBar" quisiera acceder … Tal vez esta desalignment es la razón por la que la pantalla de la camera es negra. Simplemente no estoy segura de cómo cambiarla.

—– Actualización n. ° 2 —–

Esto parece ser un problema de SFSafariViewController, ya que implementé WKWebView y la camera funciona bien.

Este es aparentemente un error conocido con el SFSafariViewController (he enviado un radar que se cerró). Me enfrenté al mismo problema que nuestro website para dispositivos mobilees no podía get nada del dispositivo, ni la camera para tomar una foto ni imágenes del rollo de la camera. Esto persistía en Safari y en SFSafariViewController, así que terminamos simplemente rehaciendo el process de carga completo a través de VC nativo y Parse . Sin embargo, obtuve algunas sugerencias del Soporte técnico antes de hacer todo esto y me dijeron que probara lo siguiente:

  1. Verifique con un segundo dispositivo. A veces esto podría ser un error que solo ocurre en un dispositivo debido a un error en los permissions. Comprobando con el segundo dispositivo se debe excluir la opción de que algo salió mal en la installation
  2. Compruebe los permissions de la aplicación en Configuración. Me dijeron que a veces aparecía la pantalla en blanco si el usuario rechazaba el permiso para usar la camera. Para verificar si este es el caso, abra la configuration, desplácese hacia abajo hasta la parte inferior y select su aplicación. aquí debería ver un interruptor de ENCENDIDO / APAGADO, que debería apuntar a encendido. Como se ve en la captura de pantalla a continuación. captura de pantalla

Sin embargo, mis dos centavos serían:

  1. Considere utilizar una UIWebview o la WKWebview en su lugar. Dijiste que tu sitio es amigable para dispositivos mobilees, entonces podrías considerar simplemente arrastrar una UIWebview a tu storyboard y configurarlo para apuntar a tu sitio. Aquí hay un buen tutorial sobre UIWebviews. La otra alternativa más obvia sería utilizar WKWebview. En su actualización, sin embargo, ya ha señalado que lo ha hecho, por lo que no lo voy a vincular a ningún tutorial.

De lo contrario, no hay mucho que puedas hacer a partir de ahora, además de archivar otro radar a Apple con su Bug Reporter . Por último, puede enviar un boleto para soporte técnico, sin embargo, no perdería ninguno de ellos, ya que solo tiene 2 por año de membresía.

Espero que eso ayude, Julian