Pracuję z SFSafariViewController i wystąpił następujący problem: Użytkownik otrzymuje przycisk przesyłania obrazu, po kliknięciu urządzenie wyświetla poprawnie wiele opcji, jednym z nich jest kamera. Gdy użytkownik wybierze kamerę, ładuje kamerę, ale ekran jest czarny, a przycisk czynności jest wyszarzony. Jednak jeśli użytkownik wybierze bibliotekę, wybrany obraz zostanie poprawnie przesłany.ios 9 - xcode 7 - SFSafariViewController - Przesyłanie obrazu - czarny ekran aparatu
Sprawdziłem, czy aplikacja ma włączone uprawnienia aparatu.
Próbowałem wdrażanie poprawek znalezionych here i here, ale na próżno.
Ktoś jeszcze napotkał ten problem?
Kod:
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.
}
}
----- Aktualizacja # 1 -----
Po zresetowaniu ustawień prywatności i próbuje przesłać obraz bezpośrednio z kamery, nie otrzymuję " SafariViewService chciałby uzyskać dostęp do kamery, co moim zdaniem może stanowić problem, ponieważ po zaakceptowaniu ekran wciąż jest czarny, zastanawiam się, dlaczego nie oznacza to, że moja nazwa aplikacji brzmi "FooBar". Niewłaściwe ustawienie powoduje, że ekran aparatu jest czarny, ale nie wiesz, jak go zmienić.
----- Aktualizacja # 2 -----
To wydaje się być SFSafariViewController problem, jak realizowane WKWebView a aparat działa prawidłowo.
Czy przycisk przesyłania obrazu pojawia się w SFSafariViewController lub jako opcja na pasku narzędzi u dołu? Wypróbowałem powyższy kod i nie widać żadnego przycisku do przesyłania zdjęć. –
Czy używasz 2 viewControllers lub tylko jeden do tego? Jestem pewien, że zdajesz sobie z tego sprawę, ale: "W przeciwieństwie do samego Safari, interfejs użytkownika SFSafariViewController jest dostosowany do wyświetlania pojedynczej strony z przyciskiem Gotowe, który przenosi użytkowników do miejsca, w którym znajdowali się w Twojej aplikacji. Jeśli Twoja aplikacja wyświetla treść internetową , ale nie dostosowuje tej zawartości, zastanów się nad zastąpieniem przeglądarek WKWebView lub UIWebView za pomocą SFSafariViewController. "Możesz prowadzić użytkownika/użytkownika do strony, która jeszcze nie istnieje. – lukaivicev
@ManishVerma: Przycisk NIE jest natywnym systemem IOS, a raczej przyciskiem przesyłania plików z przeglądarki internetowej. –