私は SFSafariViewController を使用していて、次の問題に遭遇しました。ユーザーに画像のアップロード ボタンが表示されます。デバイスをクリックすると、複数のオプションが適切に表示されます。そのうちの 1 つはカメラです。ユーザーがカメラを選択すると、カメラが読み込まれますが、画面は黒く、アクション ボタンはグレー表示されます。ただし、ユーザーがライブラリを選択すると、選択した画像が適切にアップロードされます。
アプリでカメラのアクセス許可がオンになっていることを確認しました。
こことここにある修正を実装しようとしましたが、役に立ちませんでした。
他の誰かがこの問題に遭遇しましたか?
コード:
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 -----
WKWebView を実装し、カメラが正常に動作するため、これは SFSafariViewController の問題のようです。