13

私は 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 の問題のようです。

4

1 に答える 1

3

iOS 11.3 の編集: Rihards にコメントして、これが修正されたことを指摘していただきありがとうございます。

これは明らかに SFSafariViewController の既知のバグです (私は閉じられたレーダーを提出しました)。撮影した写真のカメラやカメラロールからの写真ではなく、モバイル Web サイトがデバイスから何も取得できないという同じ問題に直面しました。これは Safari と SFSafariViewController で持続していたため、ネイティブ VC とParseを介して完全なアップロード プロセスをやり直すだけで済みました。ただし、これらすべてを実行する前に、テクニカル サポートからいくつかの提案があり、次のことを試すように言われました。

  1. 2 台目のデバイスで確認してください。場合によっては、これはパーミッションの誤りにより 1 つのデバイスでのみ発生するバグである可能性があります。2 番目のデバイスで確認すると、インストール時に問題が発生したというオプションが除外されます。
  2. [設定] でアプリの権限を確認します。ユーザーがカメラの使用許可を拒否すると、空白の画面が表示されることがあると彼らは私に言いました。これに該当するかどうかを確認するには、設定を開き、一番下までスクロールしてアプリを選択します。ここでは、ON/OFF トグルが表示され、どちらもオンになっているはずです。下のスクリーンショットに見られるように。 スクリーンショット

ただし、私の 2 セントは次のようになります。

  1. 代わりに UIWebview または WKWebview の使用を検討してください。あなたのサイトはモバイル フレンドリーだとおっしゃいましたが、UIWebview をストーリーボードにドラッグして、サイトを指すように設定することを検討できます。UIWebviewsに関する優れたチュートリアルを次に示します。もう 1 つのより明白な代替手段は、WKWebview を使用することです。ただし、あなたの更新では、これを行ったことをすでに指摘しているため、チュートリアルへのリンクは行いません.

そうでなければ、 Bug Reporterで Apple に別のレーダーを提出する以外に、現時点でできることはあまりありません。最後に、テクニカル サポートのチケットを送信することもできますが、1 メンバーシップ年に 2 つしかないため、チケットを無駄にすることはありません。

お役に立てば幸いです、ジュリアン

于 2015-12-05T19:41:46.687 に答える