2015-11-26 97 views
11

我正在使用SFSafariViewController,並遇到以下問題:用戶出現上傳圖像按鈕,點擊設備正確顯示多個選項時,其中之一是相機。當用戶選擇相機時,它將加載相機,但屏幕爲黑色,並且動作按鈕變灰。但是,如果用戶選擇圖書館,則選擇的圖片會正確上傳。ios 9 - xcode 7 - SFSafariViewController - 圖像上傳 - 黑色相機屏幕

我確實驗證了應用程序已打開相機權限。

我嘗試執行發現的修復程序herehere,但無濟於事。

其他人遇到此問題?

代碼:

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

這似乎是一個SFSafariViewController問題,因爲我實現WKWebView和照相機工作正常。

+0

是否出現SFSafariViewController內或在底部的工具欄選項上傳圖片按鈕?我試過上面的代碼,它沒有顯示任何上傳圖像按鈕。 –

+0

你使用2個viewControllers還是隻有一個?我相信你知道這一點,但是:「與Safari本身不同,SFSafariViewController UI是爲顯示單個頁面而量身定製的,其中包含一個完成按鈕,可讓用戶回到應用程序所在的位置。如果您的應用程序顯示Web內容,但不會自定義該內容,請考慮使用SFSafariViewController替換基於WKWebView或UIWebView的瀏覽器。「您可能會將自己/用戶引導至尚不存在的頁面。 – lukaivicev

+0

@ ManishVerma:該按鈕不是本機IOS,而是一個webview中的文件上傳按鈕。 –

回答

3

這顯然是SFSafariViewController(我提交了一個關閉的雷達)的已知錯誤。我遇到了同樣的問題,即我們的移動網站無法從設備中獲取任何內容,而不是拍攝照片的相機或相機膠捲的照片。這是堅持在Safari和SFSafariViewController,所以我們結束了簡單重做完整的上傳過程通過本地VC和Parse。但是,在做完所有這些之前,我收到了技術支持部門的一些建議,他們告訴我試試以下內容:

  1. 使用第二個設備進行檢查。有時候,這可能是一個只發生在一臺設備上的錯誤,因爲權限錯誤。使用第二臺設備進行檢查應該排除安裝時出現問題的選項
  2. 在設置中檢查應用程序的權限。他們告訴我,如果用戶拒絕使用相機的權限,有時會出現黑屏。要檢查是否屬於這種情況,請打開設置,向下滾動到底部並選擇您的應用程序。在這裏你應該看到一個ON/OFF開關,它應該指向ON。如下面的截圖所示。 screenshot

然而,我的兩分錢將是:

  • 考慮使用一個UIWebView或WKWebview代替。你說你的網站是移動友好的,那麼你可以考慮簡單地將一個UIWebview拖入你的故事板,並設置它指向你的網站。 Here是關於UIWebviews的一個很好的教程。另一個更明顯的選擇是使用WKWebview。在你的更新中,你已經指出你已經完成了這個,所以我不會將你鏈接到任何教程。
  • 否則有沒有什麼可以作爲的做,現在,除了提交另一個雷達蘋果與他們Bug Reporter的。最後,你可以提交技術支持票,但是我不會浪費任何這些票,因爲每個會員年只有2個票。

    希望幫助朱利安

    +0

    幫助很多,欣賞的迴應。在這一點上,我要去我們的wkwebview來利用改進的JavaScript引擎。 –

    +0

    好的。是的,WKWebview也比UIWebview快得多。很高興我能幫上忙! –